<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Starshatter_Open: D:/SRC/StarshatterSVN/Stars45/Ship.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Starshatter_Open
   </div>
   <div id="projectbrief">Open source Starshatter engine</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_ship_8cpp.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Ship.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_ship_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*  Project Starshatter 5.0</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">        Destroyer Studios LLC</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">        Copyright (C) 1997-2007. All Rights Reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">        SUBSYSTEM:    Stars.exe</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">        FILE:         Ship.cpp</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">        AUTHOR:       John DiCamillo</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">        OVERVIEW</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">        ========</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">        Starship class</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_mem_debug_8h.html">MemDebug.h</a>&quot;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ship_8h.html">Ship.h</a>&quot;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ship_a_i_8h.html">ShipAI.h</a>&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ship_ctrl_8h.html">ShipCtrl.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ship_design_8h.html">ShipDesign.h</a>&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ship_killer_8h.html">ShipKiller.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shot_8h.html">Shot.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_drone_8h.html">Drone.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_seeker_a_i_8h.html">SeekerAI.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_hard_point_8h.html">HardPoint.h</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_group_8h.html">WeaponGroup.h</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shield_8h.html">Shield.h</a>&quot;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shield_rep_8h.html">ShieldRep.h</a>&quot;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_computer_8h.html">Computer.h</a>&quot;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_flight_comp_8h.html">FlightComp.h</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_drive_8h.html">Drive.h</a>&quot;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_quantum_drive_8h.html">QuantumDrive.h</a>&quot;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_farcaster_8h.html">Farcaster.h</a>&quot;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_thruster_8h.html">Thruster.h</a>&quot;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_8h.html">Power.h</a>&quot;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_flight_deck_8h.html">FlightDeck.h</a>&quot;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_landing_gear_8h.html">LandingGear.h</a>&quot;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;Hangar.h.&quot;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sensor_8h.html">Sensor.h</a>&quot;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_contact_8h.html">Contact.h</a>&quot;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_combat_unit_8h.html">CombatUnit.h</a>&quot;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_instruction_8h.html">Instruction.h</a>&quot;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_radio_message_8h.html">RadioMessage.h</a>&quot;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_radio_handler_8h.html">RadioHandler.h</a>&quot;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_radio_traffic_8h.html">RadioTraffic.h</a>&quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nav_light_8h.html">NavLight.h</a>&quot;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nav_system_8h.html">NavSystem.h</a>&quot;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nav_a_i_8h.html">NavAI.h</a>&quot;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_drop_ship_a_i_8h.html">DropShipAI.h</a>&quot;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_explosion_8h.html">Explosion.h</a>&quot;</span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_mission_event_8h.html">MissionEvent.h</a>&quot;</span></div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ship_solid_8h.html">ShipSolid.h</a>&quot;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sim_8h.html">Sim.h</a>&quot;</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sim_event_8h.html">SimEvent.h</a>&quot;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_star_system_8h.html">StarSystem.h</a>&quot;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_terrain_region_8h.html">TerrainRegion.h</a>&quot;</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_terrain_8h.html">Terrain.h</a>&quot;</span></div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_system_8h.html">System.h</a>&quot;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_component_8h.html">Component.h</a>&quot;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_key_map_8h.html">KeyMap.h</a>&quot;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_radio_view_8h.html">RadioView.h</a>&quot;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_audio_config_8h.html">AudioConfig.h</a>&quot;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_camera_director_8h.html">CameraDirector.h</a>&quot;</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_h_u_d_view_8h.html">HUDView.h</a>&quot;</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_random_8h.html">Random.h</a>&quot;</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_radio_vox_8h.html">RadioVox.h</a>&quot;</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_net_game_8h.html">NetGame.h</a>&quot;</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_net_util_8h.html">NetUtil.h</a>&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_motion_controller_8h.html">MotionController.h</a>&quot;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_keyboard_8h.html">Keyboard.h</a>&quot;</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_joystick_8h.html">Joystick.h</a>&quot;</span></div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bolt_8h.html">Bolt.h</a>&quot;</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_game_8h.html">Game.h</a>&quot;</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_solid_8h.html">Solid.h</a>&quot;</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shadow_8h.html">Shadow.h</a>&quot;</span></div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_skin_8h.html">Skin.h</a>&quot;</span></div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sprite_8h.html">Sprite.h</a>&quot;</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_light_8h.html">Light.h</a>&quot;</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bitmap_8h.html">Bitmap.h</a>&quot;</span></div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_button_8h.html">Button.h</a>&quot;</span></div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sound_8h.html">Sound.h</a>&quot;</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_data_loader_8h.html">DataLoader.h</a>&quot;</span></div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_parser_8h.html">Parser.h</a>&quot;</span></div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_reader_8h.html">Reader.h</a>&quot;</span></div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span>     base_contact_id   = 0;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="keyword">static</span> <span class="keywordtype">double</span>  range_min         = 0;</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="keyword">static</span> <span class="keywordtype">double</span>  range_max         = 250e3;</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="keywordtype">int</span>      <a class="code" href="class_ship.html#a447cfe46a864a8c621c502d48fe9a397">Ship::control_model</a>        = 0; <span class="comment">// standard</span></div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keywordtype">int</span>      <a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">Ship::flight_model</a>         = 0; <span class="comment">// standard</span></div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="keywordtype">int</span>      <a class="code" href="class_ship.html#a515082ceb017518e1b7bf76ead2b1971">Ship::landing_model</a>        = 0; <span class="comment">// standard</span></div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="keywordtype">double</span>   <a class="code" href="class_ship.html#acceba03bce72bc1003ff72cd3ad35342">Ship::friendly_fire_level</a>  = 1; <span class="comment">// 100%</span></div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">  101</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a>   = 0;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="_ship_8cpp.html#a95e12dbf425cb112193e5854f978d5fe">  102</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_ship_8cpp.html#a95e12dbf425cb112193e5854f978d5fe">HIT_HULL</a>      = 1;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">  103</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">HIT_SHIELD</a>    = 2;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="_ship_8cpp.html#ae0fe0430b3a9893c6810f175e299c2b8">  104</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_ship_8cpp.html#ae0fe0430b3a9893c6810f175e299c2b8">HIT_BOTH</a>      = 3;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="_ship_8cpp.html#a6a4f38ffba8bb35bea54f4670f5b9045">  105</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_ship_8cpp.html#a6a4f38ffba8bb35bea54f4670f5b9045">HIT_TURRET</a>    = 4;</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="class_ship.html#a9f17afc693aeb0b292187b0c689674f9">  109</a></span>&#160;<a class="code" href="class_ship.html#a9f17afc693aeb0b292187b0c689674f9">Ship::Ship</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* ship_name, <span class="keyword">const</span> <span class="keywordtype">char</span>* reg_num, <a class="code" href="class_ship_design.html">ShipDesign</a>* ship_dsn, <span class="keywordtype">int</span> IFF, <span class="keywordtype">int</span> cmd_ai, <span class="keyword">const</span> <span class="keywordtype">int</span>* load)</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;: IFF_code(IFF), killer(0), throttle(0), augmenter(false), throttle_request(0),</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;shield(0), shieldRep(0), main_drive(0), quantum_drive(0), farcaster(0),</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;check_fire(false), probe(0), sensor_drone(0), primary(0), secondary(1),</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;cmd_chain_index(0), target(0), subtarget(0), radio_orders(0), launch_point(0),</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;g_force(0.0f), sensor(0), navsys(0), flcs(0), hangar(0), respawns(0), invulnerable(false),</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;thruster(0), decoy(0), ai_mode(2), command_ai_level(cmd_ai), flcs_mode(FLCS_AUTO), loadout(0),</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;emcon(3), old_emcon(3), master_caution(false), cockpit(0), gear(0), skin(0),</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;auto_repair(true), last_repair_time(0), last_eval_time(0), last_beam_time(0), last_bolt_time(0),</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;warp_fov(1), flight_phase(LAUNCH), launch_time(0), carrier(0), dock(0), ff_count(0),</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;inbound(0), element(0), director_info(<span class="stringliteral">&quot;Init&quot;</span>), combat_unit(0), net_control(0), </div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;track(0), ntrack(0), track_time(0), helm_heading(0.0f), helm_pitch(0.0f),</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;altitude_agl(-1.0e6f), transition_time(0.0f), transition_type(TRANSITION_NONE),</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;friendly_fire_time(0), ward(0), net_observer_mode(false), orig_elem_index(-1)</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;{</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a> = <a class="code" href="class_sim.html#a14b48a472bca6d04230c789fc4beab4c">Sim::GetSim</a>();</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        strcpy_s(<a class="code" href="class_physical.html#a8494a16d51ebf60bba3961b2a9101b8d">name</a>,   ship_name);</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keywordflow">if</span> (reg_num &amp;&amp; *reg_num)</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        strcpy_s(<a class="code" href="class_ship.html#aee0be7c03f657b7e39fdc1a2ddfb1e72">regnum</a>, reg_num);</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordflow">else</span> <a class="code" href="class_ship.html#aee0be7c03f657b7e39fdc1a2ddfb1e72">regnum</a>[0] = 0;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a> = ship_dsn;</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>) {</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                <span class="keywordtype">char</span> msg[256];</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                sprintf_s(msg, <span class="stringliteral">&quot;No ship design found for &#39;%s&#39;\n&quot;</span>, ship_name);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                <a class="code" href="class_game.html#a868b0cf4e70d9e7b6c78867ac9c4388f">Game::Panic</a>(msg);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        }</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <a class="code" href="class_physical.html#a6c0701c3b48649aab8fa7c4ccd00e21c">obj_type</a>    = <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982a883a4c0d3bae3a294a55a710f8bd7cf4">SimObject::SIM_SHIP</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <a class="code" href="class_physical.html#a339bd272f6c690c23b64eb9419d039ec">radius</a>      = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a58d7e12559684a4b696e70bce9deeecc">radius</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <a class="code" href="class_physical.html#a7c68f6e32d5725d6ae0099400f7c0b6e">mass</a>        = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ae75a3d62e1ac250b9c9e52fb127ceb40">mass</a>;</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <a class="code" href="class_physical.html#a8e2b75659beeba7ed86a6f1199260c1c">integrity</a>   = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af112b5efa577088b7ccbde199c2bb535">integrity</a>;</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>      = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#afc5d3a9b195cc0ee6a18c8b5fc5cc615">vlimit</a>;</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a>     = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a155acb34d07e7ae69cd9acbc6807ab97">agility</a>;</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <a class="code" href="class_ship.html#a7056266d7234bfbcea8ee862728b4a01">wep_mass</a>    = 0.0f;</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <a class="code" href="class_ship.html#ac05b1808d735b4445b06ca220d72fa60">wep_resist</a>  = 0.0f;</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <a class="code" href="class_physical.html#ace12d2822fdb0de0b531600e550e21a6">CL</a>          = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aec42e0572fce016f97f269634fcf4627">CL</a>;</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <a class="code" href="class_physical.html#a818d4907d9771bb7b8f2b096e0ccce7e">CD</a>          = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#acad0318af611c9544652a1adb9057efc">CD</a>;</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <a class="code" href="class_physical.html#a091ee071ff79007c87e33f0ff2cb574c">stall</a>       = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ae6352f32e97a379110590b3a940e5583">stall</a>;</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <a class="code" href="class_ship.html#a9e65983c5102d8d5a76fee7d562ca49a">chase_vec</a>   = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3faac2e48387de9b6bb8075ba9a57ee7">chase_vec</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="class_ship.html#a909ee8ec77aa159fa887465d6b8200be">bridge_vec</a>  = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aaf8fbf7a8d3843659ea66f77cf89444e">bridge_vec</a>;</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <a class="code" href="class_ship.html#a6e8a59d622df9e3ec98b501a6a226759">acs</a>         = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aeea7742e907275ae8058bfacd454fe3a">acs</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <a class="code" href="class_ship.html#a5afe99971c8d3ffc4182f80e40d83494">pcs</a>         = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aeea7742e907275ae8058bfacd454fe3a">acs</a>;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <a class="code" href="class_ship.html#a903658c1c9bbb81bf7b990c4f06866e5">auto_repair</a> = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a5da199cd0b524b22473bebd749a5f200">repair_auto</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">while</span> (!base_contact_id)</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        base_contact_id = rand() % 1000;</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <a class="code" href="class_ship.html#a22c7585f4889187cfded48f51faed3c6">contact_id</a>  = base_contact_id++;</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keywordtype">int</span> sys_id  = 0;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a647886cf54f9e268c70134832c34152d">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                <a class="code" href="class_power_source.html">PowerSource</a>* reactor = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_power_source.html">PowerSource</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a647886cf54f9e268c70134832c34152d">reactors</a>[i]);</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                reactor-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                reactor-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(reactor);</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(reactor);</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        }</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a512a8cad6d46af7c302b158e01da7c61">drives</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                <a class="code" href="class_drive.html">Drive</a>* drive = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_drive.html">Drive</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a512a8cad6d46af7c302b158e01da7c61">drives</a>[i]);</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                drive-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                drive-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                <span class="keywordtype">int</span> src_index = drive-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(drive);</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                <a class="code" href="class_ship.html#ae42d01af212924a4f45b9e4cbd35ba03">drives</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(drive);</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(drive);</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        }</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aa1d2c32fab46bdaa4d45f66152279517">quantum_drive</a>) {</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                <a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_quantum_drive.html">QuantumDrive</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aa1d2c32fab46bdaa4d45f66152279517">quantum_drive</a>);</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                <a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a>-&gt;<a class="code" href="class_quantum_drive.html#a1a7cf975f7eb7b411133751c96957556">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                <a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a>);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                <a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a>-&gt;<a class="code" href="class_quantum_drive.html#a1a7cf975f7eb7b411133751c96957556">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a>);</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        }</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aab410619837eafedbdb840fd5eef70e9">farcaster</a>) {</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_farcaster.html">Farcaster</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aab410619837eafedbdb840fd5eef70e9">farcaster</a>);</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>-&gt;<a class="code" href="class_farcaster.html#a72eb3ae3fafeaee6863916c8ce579c0a">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>);</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>-&gt;<a class="code" href="class_farcaster.html#a72eb3ae3fafeaee6863916c8ce579c0a">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>);</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        }</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a032ecf69544245597e4153c0bbf02336">thruster</a>) {</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_thruster.html">Thruster</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a032ecf69544245597e4153c0bbf02336">thruster</a>);</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a4e18c0721d97210e8cef286dbbe079fb">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>);</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a4e18c0721d97210e8cef286dbbe079fb">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>);</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        }</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#acbab8666974ef4e66f80471fdcff244e">shield</a>) {</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_shield.html">Shield</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#acbab8666974ef4e66f80471fdcff244e">shield</a>);</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>);</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ad1db2cb51eef447c36e6932ee5a87c1c">shield_model</a>) {</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_shield_rep.html">ShieldRep</a>;</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_solid.html#af3523ca7f8df117565e53bd087ae60f7">UseModel</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ad1db2cb51eef447c36e6932ee5a87c1c">shield_model</a>);</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                }</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                </div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>);</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        }</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#add7d59e07171a673b90b90d4ac9d1d5a">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                <a class="code" href="class_flight_deck.html">FlightDeck</a>* deck = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_flight_deck.html">FlightDeck</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#add7d59e07171a673b90b90d4ac9d1d5a">flight_decks</a>[i]);</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                deck-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                deck-&gt;<a class="code" href="class_flight_deck.html#a9c0e872ce88699e004c1ff77c601b1d9">SetCarrier</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                deck-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;                deck-&gt;<a class="code" href="class_flight_deck.html#abecf7a0e86144ed0977d57b8e8f48b8e">SetIndex</a>(i);</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                <span class="keywordtype">int</span> src_index = deck-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(deck);</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(deck);</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(deck);</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        }</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#add7d59e07171a673b90b90d4ac9d1d5a">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0) {</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>) {</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;                        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_hangar.html">Hangar</a>;</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;                        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>-&gt;<a class="code" href="class_hangar.html#a2afa47bee360c42f49c9c21f0c37bc6f">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;                }</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        }</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aae3faab9e9b9fc446e98cbd782af5316">squadrons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0) {</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;                <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>) {</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_hangar.html">Hangar</a>;</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;                        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>-&gt;<a class="code" href="class_hangar.html#a2afa47bee360c42f49c9c21f0c37bc6f">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                }</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aae3faab9e9b9fc446e98cbd782af5316">squadrons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;                        <a class="code" href="class_ship_squadron.html">ShipSquadron</a>* s = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aae3faab9e9b9fc446e98cbd782af5316">squadrons</a>[i];</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;                        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>-&gt;<a class="code" href="class_hangar.html#a347376e6cf1ca162fc7f19cfeaf175ed">CreateSquadron</a>(s-&gt;<a class="code" href="class_ship_squadron.html#a4a04ac5a6d7179735ac3d17c5bb82cab">name</a>, 0, s-&gt;<a class="code" href="class_ship_squadron.html#ad79861b29d0b9bd21aa7ba80aca04805">design</a>, s-&gt;<a class="code" href="class_ship_squadron.html#a103e78c7fb57404ca118cc4070e46c31">count</a>, <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>(), 0, 0, s-&gt;<a class="code" href="class_ship_squadron.html#a3d8318a3e29645f8adbd0fe86ce1b29a">avail</a>);</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                }</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        }</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af1ae824ece796e18c474deb6920fb9a6">gear</a>) {</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_landing_gear.html">LandingGear</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af1ae824ece796e18c474deb6920fb9a6">gear</a>);</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>);</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>);</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        }</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a1657bbe21f2e280e3cc9710b7aea6d8c">sensor</a>) {</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_sensor.html">Sensor</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a1657bbe21f2e280e3cc9710b7aea6d8c">sensor</a>);</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;                <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>);</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>() || <a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858">IsStatic</a>() || !strncmp(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a05d4abe8e5e5d2bf87b62184248b421e">name</a>, <span class="stringliteral">&quot;Camera&quot;</span>, 6))</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#a79ebe6fc17fc57e9351eeda1208ad1ee">SetMode</a>(<a class="code" href="class_sensor.html#a67373e45d6929876af10812b6c736016aec29d5103a9923746b9890e15a52d3f0">Sensor::CST</a>);</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>);</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        }</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="keywordtype">int</span> wep_index = 1;</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#afa996fc26f941fc1ac4788c8d56aa6c9">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                <a class="code" href="class_weapon.html">Weapon</a>* gun = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_weapon.html">Weapon</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#afa996fc26f941fc1ac4788c8d56aa6c9">weapons</a>[i]);</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;                gun-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;                gun-&gt;<a class="code" href="class_weapon.html#af39df07ee2c2d782fb27ad53866fec27">SetOwner</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;                gun-&gt;<a class="code" href="class_weapon.html#a5322e95e389c95cf88ca664dca5c13dd">SetIndex</a>(wep_index++);</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;                <span class="keywordtype">int</span> src_index = gun-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(gun);</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;                <a class="code" href="class_weapon_group.html">WeaponGroup</a>* group = <a class="code" href="class_ship.html#a72df13368a3873d550d234440125d963">FindWeaponGroup</a>(gun-&gt;<a class="code" href="class_weapon.html#a64908589513be8277c898ed8540bd4eb">Group</a>());</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                group-&gt;<a class="code" href="class_weapon_group.html#a1f9941952f64d03293b88af77685bf67">AddWeapon</a>(gun);</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;                group-&gt;<a class="code" href="class_weapon_group.html#a94bdc548fce47d17e8d99d4377556b1e">SetAbbreviation</a>(gun-&gt;<a class="code" href="class_system.html#a37638780feb3c8986f06f0bae9f5de98">Abbreviation</a>());</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(gun);</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>() &amp;&amp; gun-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>())</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;                gun-&gt;<a class="code" href="class_weapon.html#ad5157d3af558c12510ef2d2bb53e314f">SetFiringOrders</a>(<a class="code" href="class_weapon.html#a939a47bff4d001de54860169efc4f554af58cf56b3591a6600a7c1643e0581c95">Weapon::POINT_DEFENSE</a>);</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                gun-&gt;<a class="code" href="class_weapon.html#ad5157d3af558c12510ef2d2bb53e314f">SetFiringOrders</a>(<a class="code" href="class_weapon.html#a939a47bff4d001de54860169efc4f554a8be1579203caf713ed1285a8bbb4a908">Weapon::MANUAL</a>);</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        }</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <span class="keywordtype">int</span> loadout_size = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a005d92c9c2732bce2da896b42948cff3">hard_points</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>();</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        <span class="keywordflow">if</span> (load &amp;&amp; loadout_size &gt; 0) {</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                <a class="code" href="class_ship.html#a8c7caeec3963a06060bc67d560a0208e">loadout</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <span class="keywordtype">int</span>[loadout_size];</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; loadout_size; i++) {</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;                        <span class="keywordtype">int</span> mounted_weapon = <a class="code" href="class_ship.html#a8c7caeec3963a06060bc67d560a0208e">loadout</a>[i] = load[i];</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;                        <span class="keywordflow">if</span> (mounted_weapon &lt; 0)</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;                        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;                        <a class="code" href="class_weapon.html">Weapon</a>* missile = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a005d92c9c2732bce2da896b42948cff3">hard_points</a>[i]-&gt;CreateWeapon(mounted_weapon);</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;                        <span class="keywordflow">if</span> (missile) {</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;                                missile-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;                                missile-&gt;<a class="code" href="class_weapon.html#af39df07ee2c2d782fb27ad53866fec27">SetOwner</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;                                missile-&gt;<a class="code" href="class_weapon.html#a5322e95e389c95cf88ca664dca5c13dd">SetIndex</a>(wep_index++);</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;                                <a class="code" href="class_weapon_group.html">WeaponGroup</a>* group = <a class="code" href="class_ship.html#a72df13368a3873d550d234440125d963">FindWeaponGroup</a>(missile-&gt;<a class="code" href="class_weapon.html#a64908589513be8277c898ed8540bd4eb">Group</a>());</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;                                group-&gt;<a class="code" href="class_weapon_group.html#a1f9941952f64d03293b88af77685bf67">AddWeapon</a>(missile);</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;                                group-&gt;<a class="code" href="class_weapon_group.html#a94bdc548fce47d17e8d99d4377556b1e">SetAbbreviation</a>(missile-&gt;<a class="code" href="class_system.html#a37638780feb3c8986f06f0bae9f5de98">Abbreviation</a>());</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;                                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(missile);</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                        }</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;                }</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        }</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 1) {</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;                <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>   = -1;</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;                <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> = -1;</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;                        <a class="code" href="class_weapon_group.html">WeaponGroup</a>* group = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i];</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;                        <span class="keywordflow">if</span> (group-&gt;<a class="code" href="class_weapon_group.html#a659fa5a4e2c68e137459311e9adb2bbe">IsPrimary</a>() &amp;&amp; <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a> &lt; 0) {</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;                                <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a> = i;</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;                                <span class="comment">// turrets on fighters are set to point defense by default,</span></div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;                                <span class="comment">// this forces the primary turret back to manual control</span></div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;                                group-&gt;<a class="code" href="class_weapon_group.html#a082203ad39b5e85cda3cc9d181ade890">SetFiringOrders</a>(<a class="code" href="class_weapon.html#a939a47bff4d001de54860169efc4f554a8be1579203caf713ed1285a8bbb4a908">Weapon::MANUAL</a>);</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;                        }</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (group-&gt;<a class="code" href="class_weapon_group.html#a6cb8a1b9bba7282b619ada6ae9dd92d3">IsMissile</a>() &amp;&amp; <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> &lt; 0) {</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;                                <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> = i;</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;                        }</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;                }</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>   &lt; 0)   <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>   = 0;</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> &lt; 0)   <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> = 1;</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 4) {</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;                        <a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">::Print</a>(<span class="stringliteral">&quot;WARNING: Ship &#39;%s&#39; type &#39;%s&#39; has %d wep groups (max=4)\n&quot;</span>,</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;                        <a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>(), <a class="code" href="class_ship.html#a290140721248b82dd9f100188ca0e516">DesignName</a>(), <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>());</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;                }</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        }</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a2a1d364a131294ca6735e7f48544d19d">decoy</a>) {</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;                <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_weapon.html">Weapon</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a2a1d364a131294ca6735e7f48544d19d">decoy</a>);</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;                <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>-&gt;<a class="code" href="class_weapon.html#af39df07ee2c2d782fb27ad53866fec27">SetOwner</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;                <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;                <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>-&gt;<a class="code" href="class_weapon.html#a5322e95e389c95cf88ca664dca5c13dd">SetIndex</a>(wep_index++);</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>);</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>);</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        }</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aa1224bb70e648501916bc932f210b88a">navlights</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;                <a class="code" href="class_nav_light.html">NavLight</a>* navlight = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_nav_light.html">NavLight</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aa1224bb70e648501916bc932f210b88a">navlights</a>[i]);</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;                navlight-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;                navlight-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;                navlight-&gt;<a class="code" href="class_nav_light.html#a9bd1434ca1394a93387168fe07ffef35">SetOffset</a>(((DWORD) <span class="keyword">this</span>) &lt;&lt; 2);</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;                <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(navlight);</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(navlight);</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        }</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aeba66a2d00cad7840a82aaadc116f7a8">navsys</a>) {</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;                <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_nav_system.html">NavSystem</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aeba66a2d00cad7840a82aaadc116f7a8">navsys</a>);</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;                <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;                <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>);</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>);</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        }</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a83e9ed8d7cdd79e390b5f4e66ab79cd6">probe</a>) {</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;                <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_weapon.html">Weapon</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a83e9ed8d7cdd79e390b5f4e66ab79cd6">probe</a>);</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;                <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>-&gt;<a class="code" href="class_weapon.html#af39df07ee2c2d782fb27ad53866fec27">SetOwner</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;                <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;                <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>-&gt;<a class="code" href="class_weapon.html#a5322e95e389c95cf88ca664dca5c13dd">SetIndex</a>(wep_index++);</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;                <span class="keywordtype">int</span> src_index = <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(<a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>);</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(<a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>);</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        }</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ac0e6dd54b4d5019edcf74b78f8990011">computers</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;                <a class="code" href="class_computer.html">Computer</a>* comp = 0;</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ac0e6dd54b4d5019edcf74b78f8990011">computers</a>[i]-&gt;Subtype() == <a class="code" href="class_computer.html#af460f9221866a973a9ecac2f0dadcf89a5905fedd1c4325380d2b454116b4be68">Computer::FLIGHT</a>) {</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_flight_comp.html">FlightComp</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ac0e6dd54b4d5019edcf74b78f8990011">computers</a>[i]);</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;                        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;                        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_flight_comp.html#aeef3fec879b2781e5869b34aa925ecbc">SetMode</a>(<a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a>);</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;                        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_flight_comp.html#a4548cac3d9f82c7df881a9b06b01723f">SetVelocityLimit</a>(<a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>);</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>)</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;                        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_flight_comp.html#a1c156ed6253d7ceea51352c15278f49f">SetTransLimit</a>(<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a82e97c45db11d0d18b64a0f35b14086c">TransXLimit</a>(),</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;                        <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a721162b34633baf23591f46ece541bf6">TransYLimit</a>(),</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;                        <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a36b81259b61b3dc87584806768e1de22">TransZLimit</a>());</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;                        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_flight_comp.html#a1c156ed6253d7ceea51352c15278f49f">SetTransLimit</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a7257db57f3f26f72a9b2489bb5e330c8">trans_x</a>,</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;                        <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a0d87c6b237eb24fac4ca0a460e751876">trans_y</a>,</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;                        <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aaf042f3a7a4cbeb65ed9b96a963c76b1">trans_z</a>);</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;                        comp = <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>;</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;                }</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;                        comp = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_computer.html">Computer</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ac0e6dd54b4d5019edcf74b78f8990011">computers</a>[i]);</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;                }</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;                comp-&gt;<a class="code" href="class_system.html#aa602daea3f572d1bccb0debc8da8893d">SetShip</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;                comp-&gt;<a class="code" href="class_system.html#a5ad5d29bc95b505cfd29984db4d058a5">SetID</a>(sys_id++);</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;                <span class="keywordtype">int</span> src_index = comp-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>();</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;                <span class="keywordflow">if</span> (src_index &gt;= 0 &amp;&amp; src_index &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[src_index]-&gt;AddClient(comp);</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;                <a class="code" href="class_ship.html#a5ac29b86d6031a6ef97095636723489e">computers</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(comp);</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;                <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(comp);</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        }</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_instruction.html">Instruction</a>(<span class="stringliteral">&quot;&quot;</span>, <a class="code" href="struct_point.html">Point</a>(0,0,0));</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <span class="comment">// Load Detail Set:</span></div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="_terrain_patch_8cpp.html#af956e344e4e5a3c7efc68d5534d77c64">DetailSet::MAX_DETAIL</a>; i++) {</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aad6faa24dc128f76d7e682333a6ec101">models</a>[i].<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0) {</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* solid = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_ship_solid.html">ShipSolid</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;                        solid-&gt;<a class="code" href="class_solid.html#af3523ca7f8df117565e53bd087ae60f7">UseModel</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aad6faa24dc128f76d7e682333a6ec101">models</a>[i].<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(0));</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;                        solid-&gt;<a class="code" href="class_solid.html#a667d00c2ef4d91b3b9b8ccf2a344561a">CreateShadows</a>(1);</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;                        <a class="code" href="struct_point.html">Point</a>* offset = 0;</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;                        <a class="code" href="struct_point.html">Point</a>* spin   = 0;</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af87b00bdf446302a35e637c359ccfdd6">offsets</a>[i].<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0)</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;                        offset = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="struct_point.html">Point</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af87b00bdf446302a35e637c359ccfdd6">offsets</a>[i].<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(0));</div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a2ee0494c04013a9ccb29901f35a190f9">spin_rates</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0)</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;                        spin = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="struct_point.html">Point</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a2ee0494c04013a9ccb29901f35a190f9">spin_rates</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(0));</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;                        <a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#ad2ca800772764f19f5e65da6d53c0adf">DefineLevel</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a211198bf0c0bd0ce84620c3376708a91">feature_size</a>[i], solid, offset, spin);</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;                }</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aad6faa24dc128f76d7e682333a6ec101">models</a>[i].<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 1) {</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> n = 1; n &lt; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aad6faa24dc128f76d7e682333a6ec101">models</a>[i].<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); n++) {</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* solid = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_ship_solid.html">ShipSolid</a>(<span class="keyword">this</span>); <span class="comment">//Solid;</span></div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;                                solid-&gt;<a class="code" href="class_solid.html#af3523ca7f8df117565e53bd087ae60f7">UseModel</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aad6faa24dc128f76d7e682333a6ec101">models</a>[i].<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(n));</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;                                solid-&gt;<a class="code" href="class_solid.html#a667d00c2ef4d91b3b9b8ccf2a344561a">CreateShadows</a>(1);</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;                                <a class="code" href="struct_point.html">Point</a>* offset = 0;</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;                                <a class="code" href="struct_point.html">Point</a>* spin   = 0;</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af87b00bdf446302a35e637c359ccfdd6">offsets</a>[i].<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; n)</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;                                offset = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="struct_point.html">Point</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af87b00bdf446302a35e637c359ccfdd6">offsets</a>[i].<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(n));</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a2ee0494c04013a9ccb29901f35a190f9">spin_rates</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; n)</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;                                spin = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="struct_point.html">Point</a>(*<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a2ee0494c04013a9ccb29901f35a190f9">spin_rates</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(n));</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;                                <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a926a60f9969afba1fcec18157985c172">AddToLevel</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, solid, offset, spin);</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;                        }</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;                }</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        }</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="comment">// start with lowest available detail:</span></div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> = 0; <span class="comment">// this is highest -&gt; detail.NumLevels()-1);</span></div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;        <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a> = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>);</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ac45ac30974393b39df2278ba5827b077">cockpit_model</a>) {</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_solid.html">Solid</a>;</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_solid.html#af3523ca7f8df117565e53bd087ae60f7">UseModel</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ac45ac30974393b39df2278ba5827b077">cockpit_model</a>);</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_graphic.html#a2a8c15a8d0312c4fa2157878305976d4">SetForeground</a>(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        }</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a21fd224b219eca80d8b0d83af3b71a49">main_drive</a> &gt;= 0 &amp;&amp; <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a21fd224b219eca80d8b0d83af3b71a49">main_drive</a> &lt; <a class="code" href="class_ship.html#ae42d01af212924a4f45b9e4cbd35ba03">drives</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;        <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a> = <a class="code" href="class_ship.html#ae42d01af212924a4f45b9e4cbd35ba03">drives</a>[<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a21fd224b219eca80d8b0d83af3b71a49">main_drive</a>];</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        <span class="comment">// only use light from drives:</span></div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        <a class="code" href="class_physical.html#afd7fa6ca59a6efa5c5bd465793da09a1">light</a> = 0;</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        <span class="comment">// setup starship helm stuff:</span></div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        if (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>()) {</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;                <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a30c98402f823a6b8258ab87064514843">FLCS_HELM</a>;</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        }</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="comment">// initialize the AI:</span></div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;                <a class="code" href="class_ship.html#adc4e0506393a0047f36a4f18d5eb3050">missile_id</a>[i]  = 0;</div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;                <a class="code" href="class_ship.html#aeb01072c1db5ca6667e908b6ad05ad72">missile_eta</a>[i] = 0;</div>
<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;                <a class="code" href="class_ship.html#aa9fa7bcc6a1f49b5aa218589e380e481">trigger</a>[i]     = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        }</div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;}</div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;</div>
<div class="line"><a name="l00542"></a><span class="lineno"><a class="code" href="class_ship.html#a43cd6eeaffc11b49239b091621963a65">  542</a></span>&#160;<a class="code" href="class_ship.html#a43cd6eeaffc11b49239b091621963a65">Ship::~Ship</a>()</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;{</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        <span class="comment">// the loadout can not be cleared during Destroy, because it</span></div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="comment">// is needed after Destroy to create the re-spawned ship</span></div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        <span class="keyword">delete</span> [] <a class="code" href="class_ship.html#a8c7caeec3963a06060bc67d560a0208e">loadout</a>;</div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        <a class="code" href="class_ship.html#a8c7caeec3963a06060bc67d560a0208e">loadout</a> = 0;</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;</div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        <a class="code" href="class_ship.html#abaa65055920a3f630e31abc5efb8ba26">Destroy</a>();</div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;}</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"><a class="code" href="class_ship.html#abaa65055920a3f630e31abc5efb8ba26">  556</a></span>&#160;<a class="code" href="class_ship.html#abaa65055920a3f630e31abc5efb8ba26">Ship::Destroy</a>()</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;{</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;        <span class="comment">// destroy fighters on deck:</span></div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;FlightDeck&gt;</a> deck = <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>;</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        <span class="keywordflow">while</span> (++deck) {</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; deck-&gt;<a class="code" href="class_flight_deck.html#a4005b108b3cbc823c09ffedd134836bf">NumSlots</a>(); i++) {</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;                        <a class="code" href="class_ship.html">Ship</a>* s = deck-&gt;<a class="code" href="class_flight_deck.html#a941702108462643e3d659473a5950bd3">GetShip</a>(i);</div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;                        <span class="keywordflow">if</span> (s &amp;&amp; !s-&gt;<a class="code" href="class_ship.html#a52816aa006d339addfc7b199f586e7b6">IsDying</a>() &amp;&amp; !s-&gt;<a class="code" href="class_ship.html#a24ed7895c3b49f5aafca441d25e64408">IsDead</a>()) {</div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a> &amp;&amp; <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a6751e3d568564b1c7f5533ca65bec6ec">IsActive</a>()) {</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;                                        s-&gt;<a class="code" href="class_ship.html#af81d7d5565587a59cb2ba54f87b501fc">DeathSpiral</a>();</div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;                                }</div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;                                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;                                        s-&gt;<a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26ac309c00336146b9aeb9571de15f81728">TRANSITION_DEAD</a>;</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;                                        s-&gt;<a class="code" href="class_ship.html#abaa65055920a3f630e31abc5efb8ba26">Destroy</a>();</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;                                }</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                        }</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;                }</div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;        }</div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;</div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>) {</div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                <span class="comment">// mission ending for this ship, evaluate objectives one last time:</span></div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a349fb48dfc003278e63d7eafa2cab6fc">NumObjectives</a>(); i++) {</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;                        <a class="code" href="class_instruction.html">Instruction</a>* obj = <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a93b9a6781b0e7f2298f9024185b25422">GetObjective</a>(i);</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;</div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;                        <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="class_instruction.html#ab91fd7075ce282925e4759651cb1f13b">Status</a>() &lt;= <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">Instruction::ACTIVE</a>) {</div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;                                obj-&gt;<a class="code" href="class_instruction.html#ac66f4cf0fc20f8f4ef7a32cede7f6780">Evaluate</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;                        }</div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;                }</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;                <a class="code" href="class_ship.html#a22792b008d876b300f0c70fe1686b68f">combat_unit</a> = <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a0695399deec4957e2e2f4f5c99278d5e">GetCombatUnit</a>();</div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;                <a class="code" href="class_ship.html#abcfab5f08cea66949dc96f29e0039e57">SetElement</a>(0);</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        }</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;        <span class="keyword">delete</span> [] <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>;</div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;        <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a> = 0;</div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>;</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a> = 0;</div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>;</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a> = 0;</div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>;</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a> = 0;</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>;</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a> = 0;</div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>;</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a> = 0;</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a>;</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        <a class="code" href="class_ship.html#ae752b8482432d127e32c9930f1b0a740">quantum_drive</a> = 0;</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>;</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a> = 0;</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>;</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;        <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a> = 0;</div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>;</div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;        <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> = 0;</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;</div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;        <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>  = 0;</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>        = 0;</div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="comment">// repair queue does not own the systems under repair:</span></div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#ae296516a252e11963dbf963727ce429a">clear</a>();</div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;        <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>.<a class="code" href="class_list.html#a2c39145db843e6fc3fe5e835cd52b68d">destroy</a>();</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;        <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a2c39145db843e6fc3fe5e835cd52b68d">destroy</a>();</div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;        <a class="code" href="class_ship.html#a5ac29b86d6031a6ef97095636723489e">computers</a>.<a class="code" href="class_list.html#a2c39145db843e6fc3fe5e835cd52b68d">destroy</a>();</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;        <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a2c39145db843e6fc3fe5e835cd52b68d">destroy</a>();</div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;        <a class="code" href="class_ship.html#ae42d01af212924a4f45b9e4cbd35ba03">drives</a>.<a class="code" href="class_list.html#a2c39145db843e6fc3fe5e835cd52b68d">destroy</a>();</div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;        <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a2c39145db843e6fc3fe5e835cd52b68d">destroy</a>();</div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        <span class="comment">// this is now a list of dangling pointers:</span></div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#ae296516a252e11963dbf963727ce429a">clear</a>();</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>;</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a> = 0;</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;        <span class="comment">// this also destroys the rep:</span></div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;        <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a1c1e03d6cec01025b0f6063485a842bf">Destroy</a>();</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a> = 0;</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <a class="code" href="_graphic_8h.html#a6cf60e4cf1961361db679c04b7a896ed">GRAPHIC_DESTROY</a>(<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>);</div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;        <a class="code" href="_graphic_8h.html#a6cf60e4cf1961361db679c04b7a896ed">GRAPHIC_DESTROY</a>(<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>);</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;        <a class="code" href="_light_8h.html#aa1876431b51b18616bae66610e0b1c69">LIGHT_DESTROY</a>(<a class="code" href="class_physical.html#afd7fa6ca59a6efa5c5bd465793da09a1">light</a>);</div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#ac39aaeca25af0c45a9033afb0e259649">launch_point</a>;</div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        <a class="code" href="class_ship.html#ac39aaeca25af0c45a9033afb0e259649">launch_point</a> = 0;</div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;</div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a>;</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        <a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a> = 0;</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;        <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;</div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a>;</div>
<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a> = 0;</div>
<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;</div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <span class="comment">// inbound slot is deleted by flight deck:</span></div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;        <a class="code" href="class_ship.html#a11784e42ab20e8db5395025e9cbdb399">inbound</a> = 0;</div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;</div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        <a class="code" href="class_physical.html#a6b8e2705ced511545378e49b14573fdc">life</a> = 0;</div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        <a class="code" href="class_sim_object.html#a0c85131bf7bd49549606d0b5aa6d5dd4">Notify</a>();</div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;}</div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div>
<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"><a class="code" href="class_ship.html#aa8f60de74469cdc582dc94c29354f49a">  661</a></span>&#160;<a class="code" href="class_ship.html#aa8f60de74469cdc582dc94c29354f49a">Ship::Initialize</a>()</div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;{</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        <a class="code" href="class_ship.html#aa8f60de74469cdc582dc94c29354f49a">ShipDesign::Initialize</a>();</div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        <a class="code" href="class_ship.html#aa8f60de74469cdc582dc94c29354f49a">Thruster::Initialize</a>();</div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;}</div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;</div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"><a class="code" href="class_ship.html#a98f8b578bec778bb4883a7a77e478246">  670</a></span>&#160;<a class="code" href="class_ship.html#a98f8b578bec778bb4883a7a77e478246">Ship::Close</a>()</div>
<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;{</div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;        <a class="code" href="class_ship.html#a98f8b578bec778bb4883a7a77e478246">ShipDesign::Close</a>();</div>
<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;        <a class="code" href="class_ship.html#a98f8b578bec778bb4883a7a77e478246">Thruster::Close</a>();</div>
<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;}</div>
<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;</div>
<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"><a class="code" href="class_ship.html#afe36caa00d5973f5e88aaa9018c4069b">  677</a></span>&#160;<a class="code" href="class_ship.html#afe36caa00d5973f5e88aaa9018c4069b">Ship::SetupAgility</a>()</div>
<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;{</div>
<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> ROLL_SPEED  =  (float)(<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a> *  0.1500);</div>
<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> PITCH_SPEED =  (float)(<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a> *  0.0250);</div>
<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> YAW_SPEED   =  (float)(<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a> *  0.0250);</div>
<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;</div>
<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a>   = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a1149bf4b3327b3d561d257da76f7b7cc">drag</a>;</div>
<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        <a class="code" href="class_physical.html#aa97e3222a4d7bee7f0a86f0ddfedc729">dr_drg</a> = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aff116fd13bc7b42d0ce4aaac6c365a9c">roll_drag</a>;</div>
<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;        <a class="code" href="class_physical.html#ae0a23449b126a926c741c6dcb8650aaf">dp_drg</a> = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a857b6a9f7e462df98823ba6b57daab50">pitch_drag</a>;</div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;        <a class="code" href="class_physical.html#a8b54e9624bb79c518e61fde79e18393e">dy_drg</a> = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#adc90717f8ad5362fa5e54d1f5f206417">yaw_drag</a>;</div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;</div>
<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a52816aa006d339addfc7b199f586e7b6">IsDying</a>()) {</div>
<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;                <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a>   =  0.0f;</div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;                <a class="code" href="class_physical.html#aa97e3222a4d7bee7f0a86f0ddfedc729">dr_drg</a> *= 0.25f;</div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;                <a class="code" href="class_physical.html#ae0a23449b126a926c741c6dcb8650aaf">dp_drg</a> *= 0.25f;</div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;                <a class="code" href="class_physical.html#a8b54e9624bb79c518e61fde79e18393e">dy_drg</a> *= 0.25f;</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;        }</div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;</div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> &gt; 0) {</div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;                <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a>   = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a809b8eed471f5a295f43bb00dc5f455b">arcade_drag</a>;</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;                <a class="code" href="class_physical.html#ab4a9f94781e500cfc2e594d122b23927">thrust</a> *= 10.0f;</div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        }</div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        <span class="keywordtype">float</span> yaw_air_factor = 1.0f;</div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>()) {</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;                <span class="keywordtype">bool</span> grounded = <a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() &lt; <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>()/2;</div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;</div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> &gt; 0) {</div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;                        <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a> *= 2.0f;</div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a>)</div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;                        <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a> *= 2.0f;</div>
<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;                        <span class="keywordflow">if</span> (grounded)</div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;                        <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a> *= 3.0f;</div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;                }</div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;</div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a7001f58e1ca4b79ff8a1a176384d8a4b">Class</a>() != <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a93cd56b53e74dda52d86a9084091cb94">LCA</a>)</div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;                        yaw_air_factor = 0.3f;</div>
<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;</div>
<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;                        <span class="keywordtype">double</span> rho        = <a class="code" href="class_physical.html#ab2128e0932c88467240448f972e23239">GetDensity</a>();</div>
<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;                        <span class="keywordtype">double</span> speed      = <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>().<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;</div>
<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;                        <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a97be25f444d25ca55f9860c3580aa7e2">air_factor</a> * rho * speed - <a class="code" href="class_ship.html#ac05b1808d735b4445b06ca220d72fa60">wep_resist</a>;</div>
<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;</div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;                        <span class="keywordflow">if</span> (grounded &amp;&amp; <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> &lt; 0)</div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;                        <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> = 0;</div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;</div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!grounded &amp;&amp; agility &lt; 0.5 * design-&gt;<a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a>)</div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;                        agility = 0.5 * <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a155acb34d07e7ae69cd9acbc6807ab97">agility</a>;</div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;</div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (agility &gt; 2 * <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a155acb34d07e7ae69cd9acbc6807ab97">agility</a>)</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;                        agility = 2 * <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a155acb34d07e7ae69cd9acbc6807ab97">agility</a>;</div>
<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;</div>
<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                        <span class="comment">// undercarriage aerodynamic drag</span></div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a>)</div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;                        <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a> *= 5.0f;</div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;</div>
<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;                        <span class="comment">// wheel rolling friction</span></div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;                        <span class="keywordflow">if</span> (grounded)</div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;                        <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a> *= 10.0f;</div>
<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;</div>
<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;                        <span class="comment">// dead engine drag ;-)</span></div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#ab4a9f94781e500cfc2e594d122b23927">thrust</a> &lt; 10)</div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;                        <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a> *= 5.0f;</div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;                }</div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;        }</div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;</div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;                <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a155acb34d07e7ae69cd9acbc6807ab97">agility</a> - <a class="code" href="class_ship.html#ac05b1808d735b4445b06ca220d72fa60">wep_resist</a>;</div>
<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;</div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;                <span class="keywordflow">if</span> (agility &lt; 0.5 * design-&gt;<a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a>)</div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;                agility = 0.5 * <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a155acb34d07e7ae69cd9acbc6807ab97">agility</a>;</div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;</div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> == 0)</div>
<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;                <a class="code" href="class_physical.html#ac9b8033226e8a1f0757ab8ceb25bb8c9">drag</a> = 0.0f;</div>
<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        }</div>
<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;</div>
<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;        <span class="keywordtype">float</span> rr = (float) (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aa1fe51e3a358c264d65c01ce08dba4da">roll_rate</a>  * <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a> / 180);</div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <span class="keywordtype">float</span> pr = (float) (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#abec8868e3261b94391ff758299738068">pitch_rate</a> * <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a> / 180);</div>
<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        <span class="keywordtype">float</span> yr = (float) (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ab9493ab6b68aaa17201b44dd4e510bb3">yaw_rate</a>   * <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a> / 180);</div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;</div>
<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        <span class="keywordflow">if</span> (rr == 0) rr = (float) <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> * ROLL_SPEED;</div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        <span class="keywordflow">if</span> (pr == 0) pr = (float) <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> * PITCH_SPEED;</div>
<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;        <span class="keywordflow">if</span> (yr == 0) yr = (float) <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> * YAW_SPEED * yaw_air_factor;</div>
<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;</div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <a class="code" href="class_physical.html#a6fe4f81f6b9d31efe9fb2da0f9441842">SetAngularRates</a>(rr, pr, yr);</div>
<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;}</div>
<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;</div>
<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;</div>
<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00771"></a><span class="lineno"><a class="code" href="class_ship.html#af2fd084dd91501ef69950fb851ff70e4">  771</a></span>&#160;<a class="code" href="class_ship.html#af2fd084dd91501ef69950fb851ff70e4">Ship::SetRegion</a>(<a class="code" href="class_sim_region.html">SimRegion</a>* rgn)</div>
<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;{</div>
<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;        <a class="code" href="class_ship.html#af2fd084dd91501ef69950fb851ff70e4">SimObject::SetRegion</a>(rgn);</div>
<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;</div>
<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">double</span> GRAV = 6.673e-11;</div>
<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;</div>
<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">IsGroundUnit</a>()) {</div>
<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;                <span class="comment">// glue buildings to the terrain:</span></div>
<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;                <a class="code" href="struct_point.html">Point</a>    loc     = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;                <a class="code" href="class_terrain.html">Terrain</a>* terrain = <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>-&gt;<a class="code" href="class_sim_region.html#a7fa8f1f9c7a3bd663a120c02752fec61">GetTerrain</a>();</div>
<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;</div>
<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;                <span class="keywordflow">if</span> (terrain) {</div>
<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;                        loc.<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a> = terrain-&gt;<a class="code" href="class_terrain.html#a23567e7f11df8e0885e4729fd7984606">Height</a>(loc.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a>, loc.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a>);</div>
<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;                        <a class="code" href="class_physical.html#aaab110c0381fdc000018c6a65b9ef657">MoveTo</a>(loc);</div>
<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;                }</div>
<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;        }</div>
<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;</div>
<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>()) {</div>
<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;                <a class="code" href="class_orbital.html">Orbital</a>* <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a> = <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>()-&gt;<a class="code" href="class_sim_region.html#ad52327391a276684dbf74f67ba45ed48">GetOrbitalRegion</a>()-&gt;<a class="code" href="class_orbital.html#aa7cf93072adb036d37ccb2dbc685056a">Primary</a>();</div>
<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;</div>
<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;                <span class="keywordtype">double</span> m0 = primary-&gt;<a class="code" href="class_orbital.html#ac4e84df755fd74cbfed5f872a500b943">Mass</a>();</div>
<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;                <span class="keywordtype">double</span> r  = primary-&gt;<a class="code" href="class_orbital.html#ae0fff0f5550afec3e1c0d5562f9ac489">Radius</a>();</div>
<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;</div>
<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;                <a class="code" href="class_physical.html#a27342f7cf678159a9c56a1c9c4e8d918">SetGravity</a>((<span class="keywordtype">float</span>) (GRAV * m0 / (r*r)));</div>
<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;                <a class="code" href="class_physical.html#a21d9cb466d59d3854164f0124290d5e2">SetBaseDensity</a>(1.0f);</div>
<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        }</div>
<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;</div>
<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;                <a class="code" href="class_physical.html#a27342f7cf678159a9c56a1c9c4e8d918">SetGravity</a>(0.0f);</div>
<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;                <a class="code" href="class_physical.html#a21d9cb466d59d3854164f0124290d5e2">SetBaseDensity</a>(0.0f);</div>
<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;</div>
<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>())</div>
<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;                <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a30c98402f823a6b8258ab87064514843">FLCS_HELM</a>;</div>
<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;                <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a42b34eafdd1adcf6e0f130ebe192519d">FLCS_AUTO</a>;</div>
<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        }</div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;}</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;</div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l00812"></a><span class="lineno"><a class="code" href="class_ship.html#a1547628b60851712e1335eaafe6b4e3e">  812</a></span>&#160;<a class="code" href="class_ship.html#a1547628b60851712e1335eaafe6b4e3e">Ship::GetTextureList</a>(<a class="code" href="class_list.html">List&lt;Bitmap&gt;</a>&amp; textures)</div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;{</div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        textures.<a class="code" href="class_list.html#ae296516a252e11963dbf963727ce429a">clear</a>();</div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;</div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> d = 0; d &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#ae552a1c9407d8bb85cfb428ff9c2c965">NumLevels</a>(); d++) {</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(d); i++) {</div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(d, i);</div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;                        <span class="keywordflow">if</span> (g-&gt;<a class="code" href="class_graphic.html#ae23d47d0eeea992b13a1edfac427e1db">IsSolid</a>()) {</div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* solid = (<a class="code" href="class_solid.html">Solid</a>*) g;</div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;                                <a class="code" href="class_model.html">Model</a>* model = solid-&gt;<a class="code" href="class_solid.html#a994ce9964ce1beb66b08265e7f991ac9">GetModel</a>();</div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;</div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;                                <span class="keywordflow">if</span> (model) {</div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> n = 0; n &lt; model-&gt;<a class="code" href="class_model.html#ab80a4ee7edd28f8581bdcba440415549">NumMaterials</a>(); n++) {</div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;                                                <span class="comment">//textures.append(model-&gt;textures[n]);</span></div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;                                        }</div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;                                }</div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;                        }</div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;                }</div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;        }</div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;</div>
<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;        <span class="keywordflow">return</span> textures.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>();</div>
<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;}</div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;</div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;</div>
<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00839"></a><span class="lineno"><a class="code" href="class_ship.html#aa369a0e386d7205bc05cb22914312427">  839</a></span>&#160;<a class="code" href="class_ship.html#aa369a0e386d7205bc05cb22914312427">Ship::Activate</a>(<a class="code" href="class_scene.html">Scene</a>&amp; scene)</div>
<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;{</div>
<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;        <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        <a class="code" href="class_ship.html#aa369a0e386d7205bc05cb22914312427">SimObject::Activate</a>(scene);</div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;</div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;                <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;                scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(g);</div>
<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;        }</div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;        scene.<a class="code" href="class_scene.html#a725b75b685299003792ef673a7456f6f">AddLight</a>(<a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>[i]-&gt;GetLight());</div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;</div>
<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>)</div>
<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;        scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>);</div>
<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;</div>
<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>) {</div>
<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;                scene.<a class="code" href="class_scene.html#ab3bdb63948e2399c2d0236414686b702">AddForeground</a>(<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>);</div>
<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;        }</div>
<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;</div>
<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;        <a class="code" href="class_drive.html">Drive</a>* drive = <a class="code" href="class_ship.html#ab2e67e61d95e94f3234420354a6b2b22">GetDrive</a>();</div>
<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;        <span class="keywordflow">if</span> (drive) {</div>
<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; drive-&gt;<a class="code" href="class_drive.html#a3733309f13c012e74fff7cd3f9aa3d1a">NumEngines</a>(); i++) {</div>
<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* flare = drive-&gt;<a class="code" href="class_drive.html#a118dfeb197a13c8b254ca9842c6094c8">GetFlare</a>(i);</div>
<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;                        <span class="keywordflow">if</span> (flare) {</div>
<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;                                scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(flare);</div>
<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;                        }</div>
<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;</div>
<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* trail = drive-&gt;<a class="code" href="class_drive.html#a5feecba3d024276410a27cd9dff219e4">GetTrail</a>(i);</div>
<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;                        <span class="keywordflow">if</span> (trail) {</div>
<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;                                scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(trail);</div>
<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;                        }</div>
<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;                }</div>
<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;        }</div>
<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;</div>
<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;        <a class="code" href="class_thruster.html">Thruster</a>* <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a> = <a class="code" href="class_ship.html#a8fcb8e582fd8c8e72f58187a649a3e8a">GetThruster</a>();</div>
<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;        <span class="keywordflow">if</span> (thruster) {</div>
<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; thruster-&gt;<a class="code" href="class_thruster.html#a7948e7fae7dc6aba54723e125ffaeece">NumThrusters</a>(); i++) {</div>
<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* flare = thruster-&gt;<a class="code" href="class_thruster.html#a2db71d48115b56df1bc10313a331cf31">Flare</a>(i);</div>
<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;                        <span class="keywordflow">if</span> (flare) {</div>
<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;                                scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(flare);</div>
<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;                        }</div>
<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div>
<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* trail = thruster-&gt;<a class="code" href="class_thruster.html#a6b38c131dbd044899b7eb81ed093b6fc">Trail</a>(i);</div>
<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;                        <span class="keywordflow">if</span> (trail) {</div>
<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;                                scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(trail);</div>
<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;                        }</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;                }</div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        }</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> n = 0; n &lt; <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); n++) {</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;                <a class="code" href="class_nav_light.html">NavLight</a>* navlight = <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[n];</div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; navlight-&gt;<a class="code" href="class_nav_light.html#a48fe2b9b3a70b6c61f9f765130f79a93">NumBeacons</a>(); i++) {</div>
<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* beacon = navlight-&gt;<a class="code" href="class_nav_light.html#a10b3c772edd8c78306505c9f4eba9e5e">Beacon</a>(i);</div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;                        <span class="keywordflow">if</span> (beacon)</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;                        scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(beacon);</div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;                }</div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        }</div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;</div>
<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;        <span class="keywordflow">while</span> (++g) {</div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> w = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;                <span class="keywordflow">while</span> (++w) {</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* turret = w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>();</div>
<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;                        <span class="keywordflow">if</span> (turret) {</div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;                                scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(turret);</div>
<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* turret_base = w-&gt;<a class="code" href="class_weapon.html#ae515393e0b2dfca348605deb867eab29">GetTurretBase</a>();</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;                                <span class="keywordflow">if</span> (turret_base)</div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;                                scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(turret_base);</div>
<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;                        }</div>
<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;                        <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#ae6f5e9e58208af1b804b60b62e83db4b">IsMissile</a>()) {</div>
<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;                                <span class="keywordflow">for</span> (i = 0; i &lt; w-&gt;<a class="code" href="class_weapon.html#a1f251c3268deaff5dc3bd6877179fdb5">Ammo</a>(); i++) {</div>
<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;                                        <a class="code" href="class_solid.html">Solid</a>* store = w-&gt;<a class="code" href="class_weapon.html#a2206e8b95b18d7a4da25b6459b7baf57">GetVisibleStore</a>(i);</div>
<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;                                        <span class="keywordflow">if</span> (store)</div>
<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;                                        scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(store);</div>
<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;                                }</div>
<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;                        }</div>
<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;                }</div>
<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;        }</div>
<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;</div>
<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a>) {</div>
<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a58df8f2d1fe83516772e0608ddf0ac74">NumGear</a>(); i++) {</div>
<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;                        scene.<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#afd49e275d6a224d6a956b3c01d3d70e0">GetGear</a>(i));</div>
<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;                }</div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;        }</div>
<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;}</div>
<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;</div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00929"></a><span class="lineno"><a class="code" href="class_ship.html#aa97c2725173cd2f9d9da492972d0c0db">  929</a></span>&#160;<a class="code" href="class_ship.html#aa97c2725173cd2f9d9da492972d0c0db">Ship::Deactivate</a>(<a class="code" href="class_scene.html">Scene</a>&amp; scene)</div>
<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;{</div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;        <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;        <a class="code" href="class_ship.html#aa97c2725173cd2f9d9da492972d0c0db">SimObject::Deactivate</a>(scene);</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;</div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;                <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;                scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(g);</div>
<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;        }</div>
<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;</div>
<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;        scene.<a class="code" href="class_scene.html#ad21e02f913321d3678641ad1571436c6">DelLight</a>(<a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>[i]-&gt;GetLight());</div>
<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;</div>
<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>)</div>
<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;        scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>);</div>
<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;</div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>)</div>
<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;        scene.<a class="code" href="class_scene.html#a8aff5d5b00e0fd2cc6b88198a27ca757">DelForeground</a>(<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>);</div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;</div>
<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;        <a class="code" href="class_drive.html">Drive</a>* drive = <a class="code" href="class_ship.html#ab2e67e61d95e94f3234420354a6b2b22">GetDrive</a>();</div>
<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        <span class="keywordflow">if</span> (drive) {</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; drive-&gt;<a class="code" href="class_drive.html#a3733309f13c012e74fff7cd3f9aa3d1a">NumEngines</a>(); i++) {</div>
<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* flare = drive-&gt;<a class="code" href="class_drive.html#a118dfeb197a13c8b254ca9842c6094c8">GetFlare</a>(i);</div>
<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;                        <span class="keywordflow">if</span> (flare) {</div>
<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;                                scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(flare);</div>
<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;                        }</div>
<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;</div>
<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* trail = drive-&gt;<a class="code" href="class_drive.html#a5feecba3d024276410a27cd9dff219e4">GetTrail</a>(i);</div>
<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;                        <span class="keywordflow">if</span> (trail) {</div>
<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;                                scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(trail);</div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;                        }</div>
<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;                }</div>
<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;        }</div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;</div>
<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;        <a class="code" href="class_thruster.html">Thruster</a>* <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a> = <a class="code" href="class_ship.html#a8fcb8e582fd8c8e72f58187a649a3e8a">GetThruster</a>();</div>
<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;        <span class="keywordflow">if</span> (thruster) {</div>
<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; thruster-&gt;<a class="code" href="class_thruster.html#a7948e7fae7dc6aba54723e125ffaeece">NumThrusters</a>(); i++) {</div>
<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* flare = thruster-&gt;<a class="code" href="class_thruster.html#a2db71d48115b56df1bc10313a331cf31">Flare</a>(i);</div>
<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;                        <span class="keywordflow">if</span> (flare) {</div>
<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;                                scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(flare);</div>
<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;                        }</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;</div>
<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* trail = thruster-&gt;<a class="code" href="class_thruster.html#a6b38c131dbd044899b7eb81ed093b6fc">Trail</a>(i);</div>
<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;                        <span class="keywordflow">if</span> (trail) {</div>
<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;                                scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(trail);</div>
<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;                        }</div>
<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;                }</div>
<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        }</div>
<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;</div>
<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> n = 0; n &lt; <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); n++) {</div>
<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;                <a class="code" href="class_nav_light.html">NavLight</a>* navlight = <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[n];</div>
<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; navlight-&gt;<a class="code" href="class_nav_light.html#a48fe2b9b3a70b6c61f9f765130f79a93">NumBeacons</a>(); i++) {</div>
<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* beacon = navlight-&gt;<a class="code" href="class_nav_light.html#a10b3c772edd8c78306505c9f4eba9e5e">Beacon</a>(i);</div>
<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;                        <span class="keywordflow">if</span> (beacon)</div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;                        scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(beacon);</div>
<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;                }</div>
<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        }</div>
<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;</div>
<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        <span class="keywordflow">while</span> (++g) {</div>
<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> w = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;                <span class="keywordflow">while</span> (++w) {</div>
<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* turret = w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>();</div>
<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;                        <span class="keywordflow">if</span> (turret) {</div>
<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;                                scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(turret);</div>
<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div>
<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* turret_base = w-&gt;<a class="code" href="class_weapon.html#ae515393e0b2dfca348605deb867eab29">GetTurretBase</a>();</div>
<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;                                <span class="keywordflow">if</span> (turret_base)</div>
<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;                                scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(turret_base);</div>
<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;                        }</div>
<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;                        <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#ae6f5e9e58208af1b804b60b62e83db4b">IsMissile</a>()) {</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;                                <span class="keywordflow">for</span> (i = 0; i &lt; w-&gt;<a class="code" href="class_weapon.html#a1f251c3268deaff5dc3bd6877179fdb5">Ammo</a>(); i++) {</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;                                        <a class="code" href="class_solid.html">Solid</a>* store = w-&gt;<a class="code" href="class_weapon.html#a2206e8b95b18d7a4da25b6459b7baf57">GetVisibleStore</a>(i);</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;                                        <span class="keywordflow">if</span> (store)</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;                                        scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(store);</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;                                }</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;                        }</div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;                }</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;        }</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>) {</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a58df8f2d1fe83516772e0608ddf0ac74">NumGear</a>(); i++) {</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;                        scene.<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#afd49e275d6a224d6a956b3c01d3d70e0">GetGear</a>(i));</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;                }</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;        }</div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;}</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01019"></a><span class="lineno"><a class="code" href="class_ship.html#aee045c84f7ac241ed97702bafeedde4a"> 1019</a></span>&#160;<a class="code" href="class_ship.html#aee045c84f7ac241ed97702bafeedde4a">Ship::MatchOrientation</a>(<span class="keyword">const</span> <a class="code" href="class_ship.html">Ship</a>&amp; s)</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;{</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        <a class="code" href="struct_point.html">Point</a> pos = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>();</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;        <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a04eb689dabc8e56ec6098377d1321942">Clone</a>(s.<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>);</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;        <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a3c12e547329d78def633eca0c1ff81fb">MoveTo</a>(pos);</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>)</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;        <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>-&gt;<a class="code" href="class_graphic.html#a22f30bba82bd8b78293d7fc3cec4c80f">SetOrientation</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6d34215f3a9eb4a163d0dfbac4a76dab">Orientation</a>());</div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>)</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_solid.html#a387ee6d94b3b29bb6411aeca8d519166">SetOrientation</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6d34215f3a9eb4a163d0dfbac4a76dab">Orientation</a>());</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;}</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01035"></a><span class="lineno"><a class="code" href="class_ship.html#a9e2b9604fd26c0fd0182c175737016a4"> 1035</a></span>&#160;<a class="code" href="class_ship.html#a9e2b9604fd26c0fd0182c175737016a4">Ship::ClearTrack</a>()</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;{</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_contact_8cpp.html#a456e95fa0c412e5d25ae19db90e66c29">DEFAULT_TRACK_LENGTH</a> =  20; <span class="comment">// 10 seconds</span></div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>) {</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;                <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="struct_point.html">Point</a>[DEFAULT_TRACK_LENGTH];</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;        }</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>[0] = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        <a class="code" href="class_ship.html#aca37a00035316e203d6ee5041cf855a0">ntrack</a>   = 1;</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;        <a class="code" href="class_ship.html#a7d4c83f1a5e7427065ac4c88fe03c701">track_time</a> = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>();</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;}</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01049"></a><span class="lineno"><a class="code" href="class_ship.html#a24610509a3296ba7a7b0eac38aa5c287"> 1049</a></span>&#160;<a class="code" href="class_ship.html#a24610509a3296ba7a7b0eac38aa5c287">Ship::UpdateTrack</a>()</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;{</div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_contact_8cpp.html#af579ad5d2aa0bbc176409f976a3161a4">DEFAULT_TRACK_UPDATE</a> = 500; <span class="comment">// milliseconds</span></div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_contact_8cpp.html#a456e95fa0c412e5d25ae19db90e66c29">DEFAULT_TRACK_LENGTH</a> =  20; <span class="comment">// 10 seconds</span></div>
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;        DWORD time = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>();</div>
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;</div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>) {</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;                <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="struct_point.html">Point</a>[DEFAULT_TRACK_LENGTH];</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;                <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>[0] = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;                <a class="code" href="class_ship.html#aca37a00035316e203d6ee5041cf855a0">ntrack</a>   = 1;</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;                <a class="code" href="class_ship.html#a7d4c83f1a5e7427065ac4c88fe03c701">track_time</a> = time;</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;        }</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (time - <a class="code" href="class_ship.html#a7d4c83f1a5e7427065ac4c88fe03c701">track_time</a> &gt; DEFAULT_TRACK_UPDATE) {</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() != <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>[0]) {</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = DEFAULT_TRACK_LENGTH-2; i &gt;= 0; i--)</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;                        <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>[i+1] = <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>[i];</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;                        <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>[0] = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aca37a00035316e203d6ee5041cf855a0">ntrack</a> &lt; DEFAULT_TRACK_LENGTH) <a class="code" href="class_ship.html#aca37a00035316e203d6ee5041cf855a0">ntrack</a>++;</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;                }</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;                <a class="code" href="class_ship.html#a7d4c83f1a5e7427065ac4c88fe03c701">track_time</a> = time;</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;        }</div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;}</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<a class="code" href="struct_point.html">Point</a></div>
<div class="line"><a name="l01077"></a><span class="lineno"><a class="code" href="class_ship.html#a34b8a528af448e12609f306171d4e90e"> 1077</a></span>&#160;<a class="code" href="class_ship.html#a34b8a528af448e12609f306171d4e90e">Ship::TrackPoint</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a> &amp;&amp; i &lt; <a class="code" href="class_ship.html#aca37a00035316e203d6ee5041cf855a0">ntrack</a>)</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a6cb95aa202e2df5ce9ccd148d7287f1e">track</a>[i];</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="struct_point.html">Point</a>();</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;}</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>*</div>
<div class="line"><a name="l01088"></a><span class="lineno"><a class="code" href="class_ship.html#a0037614f53cb27168c661028f2af2603"> 1088</a></span>&#160;<a class="code" href="class_ship.html#a0037614f53cb27168c661028f2af2603">Ship::Abbreviation</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a18a0b37f2928203ca23741c2d8e95cfb">abrv</a>;</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;}</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>*</div>
<div class="line"><a name="l01094"></a><span class="lineno"><a class="code" href="class_ship.html#a290140721248b82dd9f100188ca0e516"> 1094</a></span>&#160;<a class="code" href="class_ship.html#a290140721248b82dd9f100188ca0e516">Ship::DesignName</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af7cefe2bf646e47872a97a6c3e035c46">DisplayName</a>();</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;}</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>*</div>
<div class="line"><a name="l01100"></a><span class="lineno"><a class="code" href="class_ship.html#af417a85403936316faad3eb4c131f240"> 1100</a></span>&#160;<a class="code" href="class_ship.html#af417a85403936316faad3eb4c131f240">Ship::DesignFileName</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aed61ebe6361e9cbe7824b5f96f556dce">filename</a>;</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;}</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>*</div>
<div class="line"><a name="l01106"></a><span class="lineno"><a class="code" href="class_ship.html#a0e854ff971a7af87c1bb64f359c9ea47"> 1106</a></span>&#160;<a class="code" href="class_ship.html#a0e854ff971a7af87c1bb64f359c9ea47">Ship::ClassName</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a0e854ff971a7af87c1bb64f359c9ea47">ShipDesign::ClassName</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3dadf6f2dc4920b44d2befe2ec816ae4">type</a>);</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;}</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>*</div>
<div class="line"><a name="l01112"></a><span class="lineno"><a class="code" href="class_ship.html#af0795f135435b484bc4cf8e6d81488d3"> 1112</a></span>&#160;<a class="code" href="class_ship.html#a0e854ff971a7af87c1bb64f359c9ea47">Ship::ClassName</a>(<span class="keywordtype">int</span> c)</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;{</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a0e854ff971a7af87c1bb64f359c9ea47">ShipDesign::ClassName</a>(c);</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;}</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01118"></a><span class="lineno"><a class="code" href="class_ship.html#a71b9f7ef53017461622cd58510417e17"> 1118</a></span>&#160;<a class="code" href="class_ship.html#a71b9f7ef53017461622cd58510417e17">Ship::ClassForName</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name)</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;{</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a71b9f7ef53017461622cd58510417e17">ShipDesign::ClassForName</a>(name);</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;}</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824">Ship::CLASSIFICATION</a></div>
<div class="line"><a name="l01124"></a><span class="lineno"><a class="code" href="class_ship.html#a7001f58e1ca4b79ff8a1a176384d8a4b"> 1124</a></span>&#160;<a class="code" href="class_ship.html#a7001f58e1ca4b79ff8a1a176384d8a4b">Ship::Class</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824">CLASSIFICATION</a>) <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3dadf6f2dc4920b44d2befe2ec816ae4">type</a>;</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;}</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01130"></a><span class="lineno"><a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963"> 1130</a></span>&#160;<a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">Ship::IsGroundUnit</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3dadf6f2dc4920b44d2befe2ec816ae4">type</a> &amp; <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824acf235b7d63a43eaaa74bf04aafd7e606">GROUND_UNITS</a>) ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;}</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01136"></a><span class="lineno"><a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0"> 1136</a></span>&#160;<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">Ship::IsStarship</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3dadf6f2dc4920b44d2befe2ec816ae4">type</a> &amp; <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a9615f8c687c4ad52ddab0fa8d7aa74f8">STARSHIPS</a>) ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;}</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01142"></a><span class="lineno"><a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060"> 1142</a></span>&#160;<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">Ship::IsDropship</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3dadf6f2dc4920b44d2befe2ec816ae4">type</a> &amp; <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824aa3cfbd70e19595a60dcebe24f8bac35d">DROPSHIPS</a>) ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;}</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01148"></a><span class="lineno"><a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858"> 1148</a></span>&#160;<a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858">Ship::IsStatic</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3dadf6f2dc4920b44d2befe2ec816ae4">type</a> &gt;= <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a4f6f1142524c01a8679946bd85c86a38">STATION</a>;</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;}</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01154"></a><span class="lineno"><a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af"> 1154</a></span>&#160;<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">Ship::IsRogue</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a2b7f7d55e611e28dff5479e889000164">ff_count</a> &gt;= 50;</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;}</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01162"></a><span class="lineno"><a class="code" href="class_ship.html#a5dce5b323f03453535f4239811d22c26"> 1162</a></span>&#160;<a class="code" href="class_ship.html#a5dce5b323f03453535f4239811d22c26">Ship::IsHostileTo</a>(<span class="keyword">const</span> <a class="code" href="class_sim_object.html">SimObject</a>* o)<span class="keyword"> const</span></div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;        <span class="keywordflow">if</span> (o) {</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>())</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;                <span class="keywordflow">if</span> (o-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982a883a4c0d3bae3a294a55a710f8bd7cf4">SIM_SHIP</a>) {</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;                        <a class="code" href="class_ship.html">Ship</a>* s = (<a class="code" href="class_ship.html">Ship</a>*) o;</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;                        <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>())</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == 0) {</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;                                <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() &gt; 1)</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;                                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;                        }</div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;                                <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() &gt; 0 &amp;&amp; s-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() != <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>())</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;                                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;                        }</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;                }</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (o-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982af19ae8c44fb3b12bc78ec664c65116f5">SIM_SHOT</a> || o-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982ae13513f3708d04b53ead6fb2e85facad">SIM_DRONE</a>) {</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;                        <a class="code" href="class_shot.html">Shot</a>* s = (<a class="code" href="class_shot.html">Shot</a>*) o;</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == 0) {</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;                                <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_shot.html#af080b22214cb3ee405ec8ae7dacac5d2">GetIFF</a>() &gt; 1)</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;                                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;                        }</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;                                <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_shot.html#af080b22214cb3ee405ec8ae7dacac5d2">GetIFF</a>() &gt; 0 &amp;&amp; s-&gt;<a class="code" href="class_shot.html#af080b22214cb3ee405ec8ae7dacac5d2">GetIFF</a>() != <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>())</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;                                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;                        }</div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;                }</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;        }</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;}</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l01204"></a><span class="lineno"><a class="code" href="class_ship.html#a1421007da5f2377385f5ed2648bb5b2c"> 1204</a></span>&#160;<a class="code" href="class_ship.html#a1421007da5f2377385f5ed2648bb5b2c">Ship::RepairSpeed</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aeefede8a0bf43e2cb34b2513c74a391d">repair_speed</a>;</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;}</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01210"></a><span class="lineno"><a class="code" href="class_ship.html#a298912a2f12d6acc528baa564489a5df"> 1210</a></span>&#160;<a class="code" href="class_ship.html#a298912a2f12d6acc528baa564489a5df">Ship::RepairTeams</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a4e83d60dcad2baface08a0ad3f6f7f76">repair_teams</a>;</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;}</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01218"></a><span class="lineno"><a class="code" href="class_ship.html#a4b825ce971a624612b90493f6e895c21"> 1218</a></span>&#160;<a class="code" href="class_ship.html#a4b825ce971a624612b90493f6e895c21">Ship::NumContacts</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;        <span class="comment">// cast-away const:</span></div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;        <span class="keywordflow">return</span> ((<a class="code" href="class_ship.html">Ship</a>*)<span class="keyword">this</span>)-&gt;ContactList().size();</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;}   </div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;<a class="code" href="class_list.html">List&lt;Contact&gt;</a>&amp;</div>
<div class="line"><a name="l01225"></a><span class="lineno"><a class="code" href="class_ship.html#a020ac1c3a07790d9f88eef601b08045d"> 1225</a></span>&#160;<a class="code" href="class_ship.html#a020ac1c3a07790d9f88eef601b08045d">Ship::ContactList</a>()</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;{</div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>)</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>-&gt;<a class="code" href="class_sim_region.html#a20f67dc0472d752e3422b293a049a31b">TrackList</a>(<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>());</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;        <span class="keyword">static</span> <a class="code" href="class_list.html">List&lt;Contact&gt;</a> empty_contact_list;</div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;        <span class="keywordflow">return</span> empty_contact_list;</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;}</div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;<a class="code" href="class_contact.html">Contact</a>*</div>
<div class="line"><a name="l01235"></a><span class="lineno"><a class="code" href="class_ship.html#a0624ceb92b9f9ffa96deb01f510aee4a"> 1235</a></span>&#160;<a class="code" href="class_ship.html#a0624ceb92b9f9ffa96deb01f510aee4a">Ship::FindContact</a>(<a class="code" href="class_sim_object.html">SimObject</a>* s)<span class="keyword"> const</span></div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;        <span class="keywordflow">if</span> (!s) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;Contact&gt;</a> c_iter = ((<a class="code" href="class_ship.html">Ship</a>*) <span class="keyword">this</span>)-&gt;ContactList();</div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;        <span class="keywordflow">while</span> (++c_iter) {</div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;                <a class="code" href="class_contact.html">Contact</a>* c = c_iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;                <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_contact.html#ade86a4b0e979ca7f818da017d6eb58ae">GetShip</a>() == s)</div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;                <span class="keywordflow">return</span> c;</div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;</div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;                <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_contact.html#ac40d7d76c482daa7f6e2bad736889621">GetShot</a>() == s)</div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;                <span class="keywordflow">return</span> c;</div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;        }</div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;</div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;}</div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;</div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;<a class="code" href="class_ship.html">Ship</a>*</div>
<div class="line"><a name="l01256"></a><span class="lineno"><a class="code" href="class_ship.html#a909ac4033a59bf957b23354dfd98842e"> 1256</a></span>&#160;<a class="code" href="class_ship.html#a909ac4033a59bf957b23354dfd98842e">Ship::GetController</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;        <a class="code" href="class_ship.html">Ship</a>*  controller = 0;</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>) {</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;                <span class="comment">// are we in same region as carrier?</span></div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>-&gt;<a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>() == <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>()) {</div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>;</div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;                }</div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;                <span class="comment">// if not, figure out who our control unit is:</span></div>
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;                        <span class="keywordtype">double</span> distance   = 10e6;</div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;                        <a class="code" href="class_list_iter.html">ListIter&lt;Ship&gt;</a> iter = <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>()-&gt;<a class="code" href="class_sim_region.html#a0778ec2d6f3c11046811c72054195d4a">Carriers</a>();</div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;                        <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;                                <a class="code" href="class_ship.html">Ship</a>* test = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;                                <span class="keywordflow">if</span> (test-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>()) {</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;                                        <span class="keywordtype">double</span> d = <a class="code" href="struct_point.html">Point</a>(<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() - test-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>()).length();</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;                                        <span class="keywordflow">if</span> (d &lt; distance) {</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;                                                controller  = test;</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;                                                distance    = d;</div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;                                        }</div>
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;                                }</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;                        }</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;                }</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;        }</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;        <span class="keywordflow">if</span> (!controller) {</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a> &amp;&amp; <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#ab8b1946954e123c825d65a4b7c84cd25">GetCommander</a>())</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;                controller = <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#ab8b1946954e123c825d65a4b7c84cd25">GetCommander</a>()-&gt;<a class="code" href="class_element.html#a0d8d831ad366c226352afd1c39658fda">GetShip</a>(1);</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;        }</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;</div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;        <span class="keywordflow">return</span> controller;</div>
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;}</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;</div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01293"></a><span class="lineno"><a class="code" href="class_ship.html#ab804e0b71f9262f0c892e7f7a2f0747a"> 1293</a></span>&#160;<a class="code" href="class_ship.html#ab804e0b71f9262f0c892e7f7a2f0747a">Ship::NumInbound</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;        <span class="keywordtype">int</span> result = 0;</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;                result += <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>[i]-&gt;GetRecoveryQueue().<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>();</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;        }</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;</div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;        <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;}</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01305"></a><span class="lineno"><a class="code" href="class_ship.html#a84e3a8fc0b5c7be51b22c36edef7e251"> 1305</a></span>&#160;<a class="code" href="class_ship.html#a84e3a8fc0b5c7be51b22c36edef7e251">Ship::NumFlightDecks</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>();</div>
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;}</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;<a class="code" href="class_flight_deck.html">FlightDeck</a>*</div>
<div class="line"><a name="l01311"></a><span class="lineno"><a class="code" href="class_ship.html#a03dad25b3efb091cb27d98263c200446"> 1311</a></span>&#160;<a class="code" href="class_ship.html#a03dad25b3efb091cb27d98263c200446">Ship::GetFlightDeck</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;        <span class="keywordflow">if</span> (i &gt;= 0 &amp;&amp; i &lt; <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>[i];</div>
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;}</div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;</div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01322"></a><span class="lineno"><a class="code" href="class_ship.html#a487378c464ef4df175fcf10501330f83"> 1322</a></span>&#160;<a class="code" href="class_ship.html#a487378c464ef4df175fcf10501330f83">Ship::SetFlightPhase</a>(<a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7">OP_MODE</a> phase)</div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;{</div>
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;        <span class="keywordflow">if</span> (phase == <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">ACTIVE</a> &amp;&amp; !<a class="code" href="class_ship.html#abf4babeec6d7433034fc60c9df63cf54">launch_time</a>) {</div>
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;                <a class="code" href="class_ship.html#abf4babeec6d7433034fc60c9df63cf54">launch_time</a>  = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() + 1;</div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;                <a class="code" href="class_ship.html#ad8a979aeaf2ff63b5ac05634554cae43">dock</a>         = 0;</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;                <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a84fe1d09ecb7fa0e0bce75f7ba680544">SetLaunchTime</a>(<a class="code" href="class_ship.html#abf4babeec6d7433034fc60c9df63cf54">launch_time</a>);</div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;        }</div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;</div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;        <a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> = phase;</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> == <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">ACTIVE</a>)</div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;        <a class="code" href="class_ship.html#ad8a979aeaf2ff63b5ac05634554cae43">dock</a> = 0;</div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;}</div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01339"></a><span class="lineno"><a class="code" href="class_ship.html#a7391b2790f482359103b81d9bea5d0fa"> 1339</a></span>&#160;<a class="code" href="class_ship.html#a7391b2790f482359103b81d9bea5d0fa">Ship::SetCarrier</a>(<a class="code" href="class_ship.html">Ship</a>* c, <a class="code" href="class_flight_deck.html">FlightDeck</a>* d)</div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;{</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;        <a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>   = c;</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;        <a class="code" href="class_ship.html#ad8a979aeaf2ff63b5ac05634554cae43">dock</a>      = d;</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>)</div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;        <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(<a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>);</div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;}</div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;</div>
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01349"></a><span class="lineno"><a class="code" href="class_ship.html#a9b994fd00418eb9eb33df22f6d677af9"> 1349</a></span>&#160;<a class="code" href="class_ship.html#a9b994fd00418eb9eb33df22f6d677af9">Ship::SetInbound</a>(<a class="code" href="class_inbound_slot.html">InboundSlot</a>* s)</div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;{</div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;        <a class="code" href="class_ship.html#a11784e42ab20e8db5395025e9cbdb399">inbound</a> = s;</div>
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;</div>
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a11784e42ab20e8db5395025e9cbdb399">inbound</a> &amp;&amp; <a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> == <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">ACTIVE</a>) {</div>
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;                <a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> = <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7aaeb84a1258e111a96517032c0a322454">APPROACH</a>;</div>
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;                <a class="code" href="class_ship.html#a7391b2790f482359103b81d9bea5d0fa">SetCarrier</a>((<a class="code" href="class_ship.html">Ship</a>*) <a class="code" href="class_ship.html#a11784e42ab20e8db5395025e9cbdb399">inbound</a>-&gt;<a class="code" href="class_inbound_slot.html#a4523db2fe50d27a7ddf6697e92725f25">GetDeck</a>()-&gt;<a class="code" href="class_flight_deck.html#a13e1bb1f4ef0ce26faee7f5deab15788">GetCarrier</a>(), <a class="code" href="class_ship.html#a11784e42ab20e8db5395025e9cbdb399">inbound</a>-&gt;<a class="code" href="class_inbound_slot.html#a4523db2fe50d27a7ddf6697e92725f25">GetDeck</a>());</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;                <a class="code" href="class_h_u_d_view.html">HUDView</a>* hud = <a class="code" href="class_h_u_d_view.html#a844ccaeffe44d21de816710da0c064b8">HUDView::GetInstance</a>();</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;                <span class="keywordflow">if</span> (hud &amp;&amp; hud-&gt;GetShip() == <span class="keyword">this</span>)</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;                hud-&gt;SetHUDMode(<a class="code" href="class_h_u_d_view.html#ad951a99905256ba03515e10eb0f05cdfa68896a2745a74fa99f4f26289bb4cfb2">HUDView::HUD_MODE_ILS</a>);</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;        }</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;}</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01366"></a><span class="lineno"><a class="code" href="class_ship.html#ae7ae44a115b345cfd90d82c92ebc3855"> 1366</a></span>&#160;<a class="code" href="class_ship.html#ae7ae44a115b345cfd90d82c92ebc3855">Ship::Stow</a>()</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;{</div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a> &amp;&amp; <a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>-&gt;<a class="code" href="class_ship.html#a56f94aa8913b5fc31c3ce60e0010574b">GetHangar</a>())</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;        <a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>-&gt;<a class="code" href="class_ship.html#a56f94aa8913b5fc31c3ce60e0010574b">GetHangar</a>()-&gt;<a class="code" href="class_hangar.html#a833a7866e079bed09b9c4e2c594c8094">Stow</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;}</div>
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01373"></a><span class="lineno"><a class="code" href="class_ship.html#aa537ece3c27c36ceb55a8e737b606a84"> 1373</a></span>&#160;<a class="code" href="class_ship.html#aa537ece3c27c36ceb55a8e737b606a84">Ship::IsGearDown</a>()</div>
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;{</div>
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() == <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a3cfa0e658baaf08c483362d3f7f21098">LandingGear::GEAR_DOWN</a>)</div>
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div>
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;}</div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;</div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01382"></a><span class="lineno"><a class="code" href="class_ship.html#a393ba447ae38747900f54bd9182286a1"> 1382</a></span>&#160;<a class="code" href="class_ship.html#a393ba447ae38747900f54bd9182286a1">Ship::LowerGear</a>()</div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;{</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a3cfa0e658baaf08c483362d3f7f21098">LandingGear::GEAR_DOWN</a>) {</div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;                <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a4db2ea133908b63dd367f6d6a18a4516">SetState</a>(<a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a61e6cc2a9d03fdf19d2126a590b0a7ec">LandingGear::GEAR_LOWER</a>);</div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;                <a class="code" href="class_scene.html">Scene</a>* scene = 0;</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;</div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>)</div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;                scene = <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>-&gt;<a class="code" href="class_graphic.html#ad61de5b90b46c991775d8fc41a9a1538">GetScene</a>();</div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;                <span class="keywordflow">if</span> (scene) {</div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a58df8f2d1fe83516772e0608ddf0ac74">NumGear</a>(); i++) {</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* g = <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#afd49e275d6a224d6a956b3c01d3d70e0">GetGear</a>(i);</div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;                                <span class="keywordflow">if</span> (g) {</div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;                                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> == 0)</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;                                        scene-&gt;<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(g);</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;                                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;                                        scene-&gt;<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(g);</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;                                }</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;                        }</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;                }</div>
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;        }</div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;}</div>
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;</div>
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01406"></a><span class="lineno"><a class="code" href="class_ship.html#a3ed26a234323c6ca83cd433eaf50340d"> 1406</a></span>&#160;<a class="code" href="class_ship.html#a3ed26a234323c6ca83cd433eaf50340d">Ship::RaiseGear</a>()</div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;{</div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a>)</div>
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;        <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a4db2ea133908b63dd367f6d6a18a4516">SetState</a>(<a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a077c31abb0d031f524de4b0ed7c7e9a5">LandingGear::GEAR_RAISE</a>);</div>
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;}</div>
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;</div>
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01413"></a><span class="lineno"><a class="code" href="class_ship.html#a5244be69906eebf1b0fdd1b5a82ba024"> 1413</a></span>&#160;<a class="code" href="class_ship.html#a5244be69906eebf1b0fdd1b5a82ba024">Ship::ToggleGear</a>()</div>
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;{</div>
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>) {</div>
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() == <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a> ||</div>
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;                                <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() == <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a077c31abb0d031f524de4b0ed7c7e9a5">LandingGear::GEAR_RAISE</a>) {</div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;                        <a class="code" href="class_ship.html#a393ba447ae38747900f54bd9182286a1">LowerGear</a>();</div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;                }</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;                        <a class="code" href="class_ship.html#a3ed26a234323c6ca83cd433eaf50340d">RaiseGear</a>();</div>
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;                }</div>
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;        }</div>
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;}</div>
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;</div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01427"></a><span class="lineno"><a class="code" href="class_ship.html#a75b4de2f2d23c3632056eb80c51a0857"> 1427</a></span>&#160;<a class="code" href="class_ship.html#a75b4de2f2d23c3632056eb80c51a0857">Ship::ToggleNavlights</a>()</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;{</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;        <span class="keywordtype">bool</span> enable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;                <span class="keywordflow">if</span> (i == 0)</div>
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;                enable = !<a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[0]-&gt;IsEnabled();</div>
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;</div>
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;                <span class="keywordflow">if</span> (enable)</div>
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;                <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[i]-&gt;Enable();</div>
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;                <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[i]-&gt;Disable();</div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;        }</div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;}</div>
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;</div>
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;</div>
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01445"></a><span class="lineno"><a class="code" href="class_ship.html#a898280621ed92a3d4527ceb186b202c5"> 1445</a></span>&#160;<a class="code" href="class_ship.html#a898280621ed92a3d4527ceb186b202c5">Ship::CollidesWith</a>(<a class="code" href="class_physical.html">Physical</a>&amp; o)</div>
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;{</div>
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;        <span class="comment">// bounding spheres test:</span></div>
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;        <a class="code" href="struct_point.html">Point</a> delta_loc = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() - o.<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;        <span class="keywordflow">if</span> (delta_loc.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>() &gt; <a class="code" href="class_physical.html#a339bd272f6c690c23b64eb9419d039ec">radius</a> + o.<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>())</div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;</div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;        <span class="keywordflow">if</span> (!o.<a class="code" href="class_physical.html#a6d29a1d011f1ab48bcea980ded24ce4d">Rep</a>())</div>
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;        <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;</div>
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;                <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;</div>
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;                <span class="keywordflow">if</span> (o.<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982a883a4c0d3bae3a294a55a710f8bd7cf4">SimObject::SIM_SHIP</a>) {</div>
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;                        <a class="code" href="class_ship.html">Ship</a>* o_ship = (<a class="code" href="class_ship.html">Ship</a>*) &amp;o;</div>
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;                        <span class="keywordtype">int</span>   o_det  = o_ship-&gt;<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>;</div>
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;</div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; o_ship-&gt;<a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(o_det); j++) {</div>
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;                                <a class="code" href="class_graphic.html">Graphic</a>* o_g = o_ship-&gt;<a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(o_det, j);</div>
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;                                <span class="keywordflow">if</span> (g-&gt;<a class="code" href="class_graphic.html#a82b6b1cbe1beb025e432f72fdb272646">CollidesWith</a>(*o_g))</div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;                                <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;                        }</div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;                }</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;                        <span class="comment">// representation collision test (will do bounding spheres first):</span></div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;                        <span class="keywordflow">if</span> (g-&gt;<a class="code" href="class_graphic.html#a82b6b1cbe1beb025e432f72fdb272646">CollidesWith</a>(*o.<a class="code" href="class_physical.html#a6d29a1d011f1ab48bcea980ded24ce4d">Rep</a>()))</div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;                }</div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;        }</div>
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div>
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;}</div>
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;</div>
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;<span class="keyword">static</span> DWORD ff_warn_time = 0;</div>
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;</div>
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01484"></a><span class="lineno"><a class="code" href="class_ship.html#a64502432e72ec87750359c978e952c03"> 1484</a></span>&#160;<a class="code" href="class_ship.html#a64502432e72ec87750359c978e952c03">Ship::HitBy</a>(<a class="code" href="class_shot.html">Shot</a>* shot, <a class="code" href="struct_point.html">Point</a>&amp; impact)</div>
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;{</div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;        <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#a93a15e6e17e1745b1fb9bb898e288ea8">Owner</a>() == <span class="keyword">this</span> || <a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>())</div>
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a>;</div>
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;</div>
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;        <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#a3b60864c63f48493fcb6993656bb52d2">IsFlak</a>())</div>
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a>;</div>
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;</div>
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4c286a7400f766ac66cc95c61d96133e">InTransition</a>())</div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a>;</div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;</div>
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;        <a class="code" href="struct_point.html">Point</a>    shot_loc = shot-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;        <a class="code" href="struct_point.html">Point</a>    delta    = shot_loc - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;        <span class="keywordtype">double</span>   dlen     = delta.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;</div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;        <a class="code" href="struct_point.html">Point</a>    hull_impact;</div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;        <span class="keywordtype">int</span>      hit_type = <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a>;</div>
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;        <span class="keywordtype">double</span>   dscale   = 1;</div>
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;        <span class="keywordtype">float</span>    scale    = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3aa65b313187ed5cc084097a0dac6490">explosion_scale</a>;</div>
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;        <a class="code" href="class_weapon.html">Weapon</a>*  wep      = 0;</div>
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;</div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;        <span class="keywordflow">if</span> (!shot-&gt;<a class="code" href="class_shot.html#afb51286dcc48eebaf872a4b6b8d377f7">IsMissile</a>() &amp;&amp; !shot-&gt;<a class="code" href="class_shot.html#a15f636f9c361fb08ea3c4e95db14ed53">IsBeam</a>()) {</div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;                <span class="keywordflow">if</span> (dlen &gt; <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>() * 2)</div>
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a>;</div>
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;        }</div>
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;</div>
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;        <span class="keywordflow">if</span> (scale &lt;= 0)</div>
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;        scale = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a926ba36ba08ffa6af1d2ee939b562f5a">scale</a>;</div>
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;</div>
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;        <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#a93a15e6e17e1745b1fb9bb898e288ea8">Owner</a>()) {</div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;                <span class="keyword">const</span> <a class="code" href="class_ship_design.html">ShipDesign</a>* owner_design = shot-&gt;<a class="code" href="class_shot.html#a93a15e6e17e1745b1fb9bb898e288ea8">Owner</a>()-&gt;<a class="code" href="class_ship.html#a6fd3887d24901d505be195335ff3b565">Design</a>();</div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;                <span class="keywordflow">if</span> (owner_design &amp;&amp; owner_design-&gt;<a class="code" href="class_ship_design.html#a926ba36ba08ffa6af1d2ee939b562f5a">scale</a> &lt; scale)</div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;                scale = (float) owner_design-&gt;<a class="code" href="class_ship_design.html#a926ba36ba08ffa6af1d2ee939b562f5a">scale</a>;</div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;        }</div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;        <span class="comment">// MISSILE PROCESSING ------------------------------------------------</span></div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;</div>
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;        <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#afb51286dcc48eebaf872a4b6b8d377f7">IsMissile</a>() &amp;&amp; <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>) {</div>
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;                <span class="keywordflow">if</span> (dlen &lt; rep-&gt;<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>()) {</div>
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;                        hull_impact = impact = shot_loc;</div>
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;</div>
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;                        hit_type = <a class="code" href="class_ship.html#a82575f7499c77f06344348ab64fa82d2">CheckShotIntersection</a>(shot, impact, hull_impact, &amp;wep);</div>
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div>
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;                        <span class="keywordflow">if</span> (hit_type) {</div>
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;                                <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#abd298f2cfc98db7e7151f200d695952e">Damage</a>() &gt; 0) {</div>
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;                                        DWORD flash = <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a28ac04c07d0244d81fd50fe05448cd21">Explosion::HULL_FLASH</a>;</div>
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;                                        </div>
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;                                        <span class="keywordflow">if</span> ((hit_type &amp; <a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">HIT_SHIELD</a>) != 0) </div>
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;                                        flash = <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989ab6da30eeb6b460a777b8866299ca2302">Explosion::SHIELD_FLASH</a>;</div>
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;</div>
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), flash,                   0.3f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="struct_point.html">Point</a>(),    <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a44ba1922a447d4efc65f8d6f7b173087">Explosion::SHOT_BLAST</a>,   2.0f,         scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;                                }</div>
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;                        }</div>
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;                }</div>
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;</div>
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;                <span class="keywordflow">if</span> (hit_type == <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a> &amp;&amp; shot-&gt;<a class="code" href="class_shot.html#aa994a48c4c0b2fb43585425cbe35cc76">IsArmed</a>()) {</div>
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;                        <a class="code" href="class_seeker_a_i.html">SeekerAI</a>* seeker = (<a class="code" href="class_seeker_a_i.html">SeekerAI</a>*) shot-&gt;<a class="code" href="class_physical.html#afb266107493cf3b901d794903d6f1077">GetDirector</a>();</div>
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;</div>
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;                        <span class="comment">// if the missile overshot us, take damage proportional to distance</span></div>
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;                        <span class="keywordtype">double</span> damage_radius = shot-&gt;<a class="code" href="class_shot.html#a04cfc616a35edaf4081e313aa0fc16a5">Design</a>()-&gt;<a class="code" href="class_weapon_design.html#a4a4e93a7a1c08c55bdf19156d780cb86">lethal_radius</a>;</div>
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;                        <span class="keywordflow">if</span> (dlen &lt; (damage_radius + <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>())) {</div>
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;                                <span class="keywordflow">if</span> (seeker &amp;&amp; seeker-&gt;<a class="code" href="class_seeker_a_i.html#a12566aba8f212f258a4d875a5c2040b4">Overshot</a>()) {</div>
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;                                        dscale = 1.0 - (dlen / (damage_radius + <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>()));</div>
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;                                        </div>
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;                                        <span class="keywordflow">if</span> (dscale &gt; 1)</div>
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;                                        dscale = 1;</div>
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;</div>
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;                                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a06991e72c4adc3bec1ce731b92649ef4">ShieldStrength</a>() &gt; 5) {</div>
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;                                                hull_impact = impact = shot_loc;</div>
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;</div>
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;                                                <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#abd298f2cfc98db7e7151f200d695952e">Damage</a>() &gt; 0) {</div>
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;                                                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>)</div>
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;                                                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_shield_rep.html#a80c1eee36456f868f6c3aaced5726c35">Hit</a>(impact, shot, shot-&gt;<a class="code" href="class_shot.html#abd298f2cfc98db7e7151f200d695952e">Damage</a>()*dscale);</div>
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;                                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989ab6da30eeb6b460a777b8866299ca2302">Explosion::SHIELD_FLASH</a>, 0.20f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;                                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="struct_point.html">Point</a>(),    <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a44ba1922a447d4efc65f8d6f7b173087">Explosion::SHOT_BLAST</a>,   20.0f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;                                                }</div>
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;</div>
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;                                                hit_type = <a class="code" href="_ship_8cpp.html#ae0fe0430b3a9893c6810f175e299c2b8">HIT_BOTH</a>;</div>
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;                                        }</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;                                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;                                                hull_impact = impact = shot_loc;</div>
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;</div>
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;                                                <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#abd298f2cfc98db7e7151f200d695952e">Damage</a>() &gt; 0) {</div>
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;                                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a28ac04c07d0244d81fd50fe05448cd21">Explosion::HULL_FLASH</a>,   0.30f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;                                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="struct_point.html">Point</a>(),    <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a44ba1922a447d4efc65f8d6f7b173087">Explosion::SHOT_BLAST</a>,   20.0f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;                                                }</div>
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;</div>
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;                                                hit_type = <a class="code" href="_ship_8cpp.html#a95e12dbf425cb112193e5854f978d5fe">HIT_HULL</a>;</div>
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;                                        }</div>
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;                                }</div>
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;                        }</div>
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;                }</div>
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;        }</div>
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;</div>
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;        <span class="comment">// ENERGY WEP PROCESSING ---------------------------------------------</span></div>
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;</div>
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;                hit_type = <a class="code" href="class_ship.html#a82575f7499c77f06344348ab64fa82d2">CheckShotIntersection</a>(shot, impact, hull_impact, &amp;wep);</div>
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;</div>
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;                <span class="comment">// impact:</span></div>
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;                <span class="keywordflow">if</span> (hit_type) {</div>
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;</div>
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;                        <span class="keywordflow">if</span> (hit_type &amp; <a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">HIT_SHIELD</a>) {</div>
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>)</div>
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;                                <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_shield_rep.html#a80c1eee36456f868f6c3aaced5726c35">Hit</a>(impact, shot, shot-&gt;<a class="code" href="class_shot.html#abd298f2cfc98db7e7151f200d695952e">Damage</a>());</div>
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;                                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989ab6da30eeb6b460a777b8866299ca2302">Explosion::SHIELD_FLASH</a>, 0.20f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;                        }</div>
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;</div>
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;                                <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#a15f636f9c361fb08ea3c4e95db14ed53">IsBeam</a>())</div>
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;                                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a058159a17fe9bf1c41687037c7ae0ee1">Explosion::BEAM_FLASH</a>, 0.30f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;                                <span class="keywordflow">else</span></div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;                                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a28ac04c07d0244d81fd50fe05448cd21">Explosion::HULL_FLASH</a>, 0.30f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>);</div>
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;</div>
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>()) {</div>
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;                                        <a class="code" href="struct_point.html">Point</a> burst_vel = hull_impact - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;                                        burst_vel.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;                                        burst_vel *= <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>() * 0.5;</div>
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;                                        burst_vel += <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>();</div>
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;</div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(hull_impact, burst_vel, <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a4b3435eb2bafe732a7d8c8804171535a">Explosion::HULL_BURST</a>, 0.50f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>, <span class="keyword">this</span>);</div>
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;                                }</div>
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;                        }</div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;                }</div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;        }</div>
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;</div>
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;        <span class="comment">// DAMAGE RESOLUTION -------------------------------------------------</span></div>
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;</div>
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;        <span class="keywordflow">if</span> (hit_type != <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a> &amp;&amp; shot-&gt;<a class="code" href="class_shot.html#aa994a48c4c0b2fb43585425cbe35cc76">IsArmed</a>()) {</div>
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;                <span class="keywordtype">double</span> effective_damage = shot-&gt;<a class="code" href="class_shot.html#abd298f2cfc98db7e7151f200d695952e">Damage</a>() * dscale;</div>
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;</div>
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;                <span class="comment">// FRIENDLY FIRE --------------------------------------------------</span></div>
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;</div>
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;                <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#a93a15e6e17e1745b1fb9bb898e288ea8">Owner</a>()) {</div>
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;                        <a class="code" href="class_ship.html">Ship</a>* s = (<a class="code" href="class_ship.html">Ship</a>*) shot-&gt;<a class="code" href="class_shot.html#a93a15e6e17e1745b1fb9bb898e288ea8">Owner</a>();</div>
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;</div>
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;                        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>() &amp;&amp; s-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() &amp;&amp;</div>
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;                                        s-&gt;<a class="code" href="class_physical.html#afb266107493cf3b901d794903d6f1077">GetDirector</a>() &amp;&amp; s-&gt;<a class="code" href="class_physical.html#afb266107493cf3b901d794903d6f1077">GetDirector</a>()-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() &lt; 1000) {</div>
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;                                <span class="keywordtype">bool</span> was_rogue = s-&gt;<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>();</div>
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;</div>
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;                                <span class="comment">// only count beam hits once</span></div>
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;                                <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#abd298f2cfc98db7e7151f200d695952e">Damage</a>() &amp;&amp; !shot-&gt;<a class="code" href="class_shot.html#aaf206ea4c824b9c1e5d95e26c02ae6cf">HitTarget</a>() &amp;&amp; <a class="code" href="class_ship.html#af8d419bf988bc25ac6afb3a714d95414">GetFriendlyFireLevel</a>() &gt; 0) {</div>
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;                                        <span class="keywordtype">int</span> penalty = 1;</div>
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;</div>
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;                                        <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#a15f636f9c361fb08ea3c4e95db14ed53">IsBeam</a>())           penalty = 5;</div>
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;                                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#abad49d59682e149920778eafe5d72752">IsDrone</a>())     penalty = 7;</div>
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div>
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;                                        <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_ship.html#ad0397b8c42cb88edd44b252e1f27c430">GetTarget</a>() == <span class="keyword">this</span>)   penalty *= 3;</div>
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;</div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;                                        s-&gt;<a class="code" href="class_ship.html#a4cc1a8414da79378fd0b02c7cdfdbfec">IncFriendlyFire</a>(penalty);</div>
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;                                }</div>
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;</div>
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;                                effective_damage *= <a class="code" href="class_ship.html#af8d419bf988bc25ac6afb3a714d95414">GetFriendlyFireLevel</a>();</div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;</div>
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a7001f58e1ca4b79ff8a1a176384d8a4b">Class</a>() &gt; <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a5b692d9aa2dc75e41b39bc8cfded199e">DRONE</a> &amp;&amp; s-&gt;<a class="code" href="class_ship.html#a7001f58e1ca4b79ff8a1a176384d8a4b">Class</a>() &gt; <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a5b692d9aa2dc75e41b39bc8cfded199e">DRONE</a>) {</div>
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;                                        <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>() &amp;&amp; !was_rogue) {</div>
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;                                                <a class="code" href="class_radio_message.html">RadioMessage</a>* warn = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_radio_message.html">RadioMessage</a>(s, <span class="keyword">this</span>, <a class="code" href="class_radio_message.html#ad12d7f6b9297753a216da6d05eecfd25af3ac12f963e471d06efe9a11f3fb188e">RadioMessage::DECLARE_ROGUE</a>);</div>
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;                                                <a class="code" href="class_radio_traffic.html#a12650c86b7d95c5c92f779bc7e754c57">RadioTraffic::Transmit</a>(warn);</div>
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;                                        }</div>
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;                                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!s-&gt;<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>() &amp;&amp; (<a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() - ff_warn_time) &gt; 5000) {</div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;                                                ff_warn_time = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>();</div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;</div>
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;                                                <a class="code" href="class_radio_message.html">RadioMessage</a>* warn = 0;</div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;                                                <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_ship.html#ad0397b8c42cb88edd44b252e1f27c430">GetTarget</a>() == <span class="keyword">this</span>)</div>
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;                                                warn = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_radio_message.html">RadioMessage</a>(s, <span class="keyword">this</span>, <a class="code" href="class_radio_message.html#ad12d7f6b9297753a216da6d05eecfd25ad04584e2dc0f6c6829d1193a72c2e5f1">RadioMessage::WARN_TARGETED</a>);</div>
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;                                                <span class="keywordflow">else</span></div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;                                                warn = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_radio_message.html">RadioMessage</a>(s, <span class="keyword">this</span>, <a class="code" href="class_radio_message.html#ad12d7f6b9297753a216da6d05eecfd25ae43690d372ef3676bcee9c5a2dc7eafa">RadioMessage::WARN_ACCIDENT</a>);</div>
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;</div>
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;                                                <a class="code" href="class_radio_traffic.html#a12650c86b7d95c5c92f779bc7e754c57">RadioTraffic::Transmit</a>(warn);</div>
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;                                        }</div>
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;                                }</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;                        }</div>
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;                }</div>
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div>
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;                <span class="keywordflow">if</span> (effective_damage &gt; 0) {</div>
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;                        <span class="keywordflow">if</span> (!shot-&gt;<a class="code" href="class_shot.html#a15f636f9c361fb08ea3c4e95db14ed53">IsBeam</a>() &amp;&amp; shot-&gt;<a class="code" href="class_shot.html#a04cfc616a35edaf4081e313aa0fc16a5">Design</a>()-&gt;<a class="code" href="class_weapon_design.html#adfcf72e7f4be4c3313c84c51b1829f10">damage_type</a> == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a3f1269bb215959df3dee891c711446aa">WeaponDesign::DMG_NORMAL</a>)</div>
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;                        <a class="code" href="class_physical.html#a021f0362ffa486a3b46bd727e83a5839">ApplyTorque</a>(shot-&gt;<a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>() * (float) effective_damage * 1e-6f);</div>
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;</div>
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;                        <span class="keywordflow">if</span> (!<a class="code" href="class_net_game.html#a6dcf404427c9aa0677ec4c89f1a3a45f">NetGame::IsNetGameClient</a>()) {</div>
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;                                <a class="code" href="class_ship.html#a6740677249996feee8b8bbed9ad884b9">InflictDamage</a>(effective_damage, shot, hit_type, hull_impact);</div>
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;                        }</div>
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;                }</div>
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;        }</div>
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;</div>
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;        <span class="keywordflow">return</span> hit_type;</div>
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;}</div>
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div>
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> CheckRaySphereIntersection(<a class="code" href="struct_point.html">Point</a> loc, <span class="keywordtype">double</span> radius, <a class="code" href="struct_point.html">Point</a> Q, <a class="code" href="struct_point.html">Point</a> w, <span class="keywordtype">double</span> len)</div>
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;{</div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;        <a class="code" href="struct_point.html">Point</a>  d0 = loc - Q;</div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;        <a class="code" href="struct_point.html">Point</a>  d1 = d0.<a class="code" href="struct_point.html#ae600bcc9fe480e782a05fade3b78f8c0">cross</a>(w);</div>
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;        <span class="keywordtype">double</span> dlen = d1.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();          <span class="comment">// distance of point from line</span></div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;        <span class="keywordflow">if</span> (dlen &gt; radius)                  <span class="comment">// clean miss</span></div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;                    <span class="comment">// (no impact)</span></div>
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;</div>
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;        <span class="comment">// possible collision course...</span></div>
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;        <span class="comment">// find the point on the ray that is closest</span></div>
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;        <span class="comment">// to the sphere&#39;s location:</span></div>
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;        <a class="code" href="struct_point.html">Point</a> closest = Q + w * (d0 * w);</div>
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;</div>
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;        <span class="comment">// find the leading edge, and it&#39;s distance from the location:</span></div>
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;        <a class="code" href="struct_point.html">Point</a>  leading_edge  = Q + w*len;</div>
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;        <a class="code" href="struct_point.html">Point</a>  leading_delta = leading_edge - loc;</div>
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;        <span class="keywordtype">double</span> leading_dist  = leading_delta.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;</div>
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;        <span class="comment">// if the leading edge is not within the sphere,</span></div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;        <span class="keywordflow">if</span> (leading_dist &gt; radius) {</div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;                <span class="comment">// check to see if the closest point is between the</span></div>
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;                <span class="comment">// ray&#39;s endpoints:</span></div>
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;                <a class="code" href="struct_point.html">Point</a> delta1 = closest      - Q;</div>
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;                <a class="code" href="struct_point.html">Point</a> delta2 = leading_edge - Q; <span class="comment">// this is w*len</span></div>
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;</div>
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;                <span class="comment">// if the closest point is not between the leading edge</span></div>
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;                <span class="comment">// and the origin, this ray does not intersect:</span></div>
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;                <span class="keywordflow">if</span> (delta1 * delta2 &lt; 0 || delta1.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>() &gt; len) {</div>
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;                }</div>
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;        }</div>
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;</div>
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;}</div>
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;</div>
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l01710"></a><span class="lineno"><a class="code" href="class_ship.html#a82575f7499c77f06344348ab64fa82d2"> 1710</a></span>&#160;<a class="code" href="class_ship.html#a82575f7499c77f06344348ab64fa82d2">Ship::CheckShotIntersection</a>(<a class="code" href="class_shot.html">Shot</a>* shot, <a class="code" href="struct_point.html">Point</a>&amp; ipt, <a class="code" href="struct_point.html">Point</a>&amp; hpt, <a class="code" href="class_weapon.html">Weapon</a>** wep)</div>
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;{</div>
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;        <span class="keywordtype">int</span>      hit_type = <a class="code" href="_ship_8cpp.html#a79cd42293f3b777bf3bdcfb7fa85db83">HIT_NOTHING</a>;</div>
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;        <a class="code" href="struct_point.html">Point</a>    shot_loc = shot-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;        <a class="code" href="struct_point.html">Point</a>    shot_org = shot-&gt;<a class="code" href="class_shot.html#a1f18e924060cfee069d70aad7dae8918">Origin</a>();</div>
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;        <a class="code" href="struct_point.html">Point</a>    shot_vpn = shot_loc - shot_org;</div>
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;        <span class="keywordtype">double</span>   shot_len = shot_vpn.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;        <span class="keywordtype">double</span>   blow_len = shot_len;</div>
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;        <span class="keywordtype">bool</span>     hit_hull = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;        <span class="keywordtype">bool</span>     easy     = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;</div>
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;        <span class="keywordflow">if</span> (shot_len &lt;= 0)</div>
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;        <span class="keywordflow">return</span> hit_type;</div>
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;</div>
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;        <span class="keywordflow">if</span> (shot_len &lt; 1000)</div>
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;        shot_len = 1000;</div>
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;</div>
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;        <a class="code" href="struct_point.html">Point</a>    hull_impact;</div>
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;        <a class="code" href="struct_point.html">Point</a>    shield_impact;</div>
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;        <a class="code" href="struct_point.html">Point</a>    turret_impact;</div>
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;        <a class="code" href="struct_point.html">Point</a>    closest;</div>
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;        <span class="keywordtype">double</span>   d0 = 1e9;</div>
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;        <span class="keywordtype">double</span>   d1 = 1e9;</div>
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;        <span class="keywordtype">double</span>   ds = 1e9;</div>
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;</div>
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> &amp;&amp; <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() == <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a952cc84cfce051e625eaa89bcf5f091f">SteerAI::FIGHTER</a>) {</div>
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;                <a class="code" href="class_ship_a_i.html">ShipAI</a>* shipAI = (<a class="code" href="class_ship_a_i.html">ShipAI</a>*) <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;                easy = shipAI-&gt;<a class="code" href="class_ship_a_i.html#ad611086929467a18546a61c88432f77e">GetAILevel</a>() &lt; 2;</div>
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;        }</div>
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;</div>
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a> &amp;&amp; <a class="code" href="class_ship.html#a06991e72c4adc3bec1ce731b92649ef4">ShieldStrength</a>() &gt; 5) {</div>
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_solid.html#a964632366bfef0116e8ab4d540ba597f">CheckRayIntersection</a>(shot_org, shot_vpn, shot_len, shield_impact)) {</div>
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;                        hit_type = <a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">HIT_SHIELD</a>;</div>
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;                        closest  = shield_impact;</div>
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;                        d0 = <a class="code" href="struct_point.html">Point</a>(closest - shot_org).<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;                        ds = d0;</div>
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div>
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;                        ipt = shield_impact;</div>
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;                }</div>
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;        }</div>
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;</div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a> &amp;&amp; hit_type == <a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">HIT_SHIELD</a> &amp;&amp; !shot-&gt;<a class="code" href="class_shot.html#a15f636f9c361fb08ea3c4e95db14ed53">IsBeam</a>())</div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;        blow_len = <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_graphic.html#a523f7cb9e66d36edefc3ec12802da621">Radius</a>() * 2;</div>
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div>
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>) &amp;&amp; !hit_hull; i++) {</div>
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;                <a class="code" href="class_solid.html">Solid</a>* s = (<a class="code" href="class_solid.html">Solid</a>*) <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;                <span class="keywordflow">if</span> (s) {</div>
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;                        <span class="keywordflow">if</span> (easy) {</div>
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;                                hit_hull = CheckRaySphereIntersection(s-&gt;<a class="code" href="class_graphic.html#a0b6627c441a7e4e8d5a1ef04bd03880b">Location</a>(), s-&gt;<a class="code" href="class_graphic.html#a523f7cb9e66d36edefc3ec12802da621">Radius</a>(), shot_org, shot_vpn, shot_len);</div>
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;                        }</div>
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;                                hit_hull = s-&gt;<a class="code" href="class_solid.html#a964632366bfef0116e8ab4d540ba597f">CheckRayIntersection</a>(shot_org, shot_vpn, blow_len, hull_impact)?<span class="keyword">true</span>:<span class="keyword">false</span>;</div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;                        }</div>
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;                }</div>
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;        }</div>
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;</div>
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;        <span class="keywordflow">if</span> (hit_hull) {</div>
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a06991e72c4adc3bec1ce731b92649ef4">ShieldStrength</a>() &gt; 5 &amp;&amp; !<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>)</div>
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;                hit_type = <a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">HIT_SHIELD</a>;</div>
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;</div>
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;                hit_type = hit_type | <a class="code" href="_ship_8cpp.html#a95e12dbf425cb112193e5854f978d5fe">HIT_HULL</a>;</div>
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;                hpt      = hull_impact;</div>
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;</div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;                d1 = <a class="code" href="struct_point.html">Point</a>(hull_impact - shot_org).<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;</div>
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;                <span class="keywordflow">if</span> (d1 &lt; d0) {</div>
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;                        closest = hull_impact;</div>
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;                        d0 = d1;</div>
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;                }</div>
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;        }</div>
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;</div>
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>() || <a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858">IsStatic</a>()) {</div>
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> g_iter = <a class="code" href="class_ship.html#ab01c9dd24753f3f978a233749c5148bc">Weapons</a>();</div>
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;                <span class="keywordflow">while</span> (++g_iter) {</div>
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;                        <a class="code" href="class_weapon_group.html">WeaponGroup</a>* g = g_iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;</div>
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;                        <span class="keywordflow">if</span> (g-&gt;<a class="code" href="class_weapon_group.html#a9eda1582e2bfc2f120c754855f8f10de">GetDesign</a>() &amp;&amp; g-&gt;<a class="code" href="class_weapon_group.html#a9eda1582e2bfc2f120c754855f8f10de">GetDesign</a>()-&gt;<a class="code" href="class_weapon_design.html#a2999641381e5a1ce060774eb6b78cbbe">turret_model</a>) {</div>
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;                                <span class="keywordtype">double</span> tsize = g-&gt;<a class="code" href="class_weapon_group.html#a9eda1582e2bfc2f120c754855f8f10de">GetDesign</a>()-&gt;<a class="code" href="class_weapon_design.html#a2999641381e5a1ce060774eb6b78cbbe">turret_model</a>-&gt;<a class="code" href="class_model.html#a741236c6857616487306481a80456645">Radius</a>();</div>
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;</div>
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;                                <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> w_iter = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;                                <span class="keywordflow">while</span> (++w_iter) {</div>
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;                                        <a class="code" href="class_weapon.html">Weapon</a>* w = w_iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;</div>
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;                                        <a class="code" href="struct_point.html">Point</a> tloc = w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>()-&gt;<a class="code" href="class_graphic.html#a0b6627c441a7e4e8d5a1ef04bd03880b">Location</a>();</div>
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;</div>
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;                                        <span class="keywordflow">if</span> (CheckRaySphereIntersection(tloc, tsize, shot_org, shot_vpn, shot_len)) {</div>
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;                                                <a class="code" href="struct_point.html">Point</a>  delta = tloc - shot_org;</div>
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;                                                d1  = delta.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;</div>
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;                                                <span class="keywordflow">if</span> (d1 &lt; d0) {</div>
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;                                                        <span class="keywordflow">if</span> (wep) *wep = w;</div>
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;                                                        hit_type = hit_type | <a class="code" href="_ship_8cpp.html#a6a4f38ffba8bb35bea54f4670f5b9045">HIT_TURRET</a>;</div>
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;                                                        turret_impact = tloc;</div>
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;</div>
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;                                                        d0 = d1;</div>
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;</div>
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;                                                        closest     = turret_impact;</div>
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;                                                        hull_impact = turret_impact;</div>
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;                                                        hpt         = turret_impact;</div>
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;</div>
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;                                                        <span class="keywordflow">if</span> (d1 &lt; ds)</div>
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;                                                        ipt         = turret_impact;</div>
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;                                                }</div>
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;                                        }</div>
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;                                }</div>
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;                        }</div>
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;                }</div>
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;        }</div>
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div>
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;        <span class="comment">// trim beam shots to closest impact point:</span></div>
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;        <span class="keywordflow">if</span> (hit_type &amp;&amp; shot-&gt;<a class="code" href="class_shot.html#a15f636f9c361fb08ea3c4e95db14ed53">IsBeam</a>()) {</div>
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;                shot-&gt;<a class="code" href="class_shot.html#a4d60ed9eb5ecfbd15c79f5607ee3f218">SetBeamPoints</a>(shot_org, closest);</div>
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;        }</div>
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;</div>
<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;        <span class="keywordflow">return</span> hit_type;</div>
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;}</div>
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div>
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;</div>
<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01830"></a><span class="lineno"><a class="code" href="class_ship.html#a9b805b1268596e27c75a3313b5e75126"> 1830</a></span>&#160;<a class="code" href="class_ship.html#a9b805b1268596e27c75a3313b5e75126">Ship::InflictNetDamage</a>(<span class="keywordtype">double</span> damage, <a class="code" href="class_shot.html">Shot</a>* shot)</div>
<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;{</div>
<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;        <span class="keywordflow">if</span> (damage &gt; 0 &amp;&amp; !<a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>()) {</div>
<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;                <a class="code" href="class_ship.html#a6740677249996feee8b8bbed9ad884b9">Physical::InflictDamage</a>(damage, 0);</div>
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div>
<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;                <span class="comment">// shake by percentage of maximum damage</span></div>
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;                <span class="keywordtype">double</span> newshake = 50 * damage/<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af112b5efa577088b7ccbde199c2bb535">integrity</a>;</div>
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;                <span class="keyword">const</span> <span class="keywordtype">double</span> MAX_SHAKE = 7;</div>
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;</div>
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a> &lt; MAX_SHAKE)  <a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a> += (float) newshake;</div>
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a> &gt; MAX_SHAKE)  <a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a>  = (float) MAX_SHAKE;</div>
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;        }</div>
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;}</div>
<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;</div>
<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01845"></a><span class="lineno"><a class="code" href="class_ship.html#afc88858c84ac0ac3e184792378bc4575"> 1845</a></span>&#160;<a class="code" href="class_ship.html#afc88858c84ac0ac3e184792378bc4575">Ship::InflictNetSystemDamage</a>(<a class="code" href="class_system.html">System</a>* system, <span class="keywordtype">double</span> damage, BYTE dmg_type)</div>
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;{</div>
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;        <span class="keywordflow">if</span> (system &amp;&amp; damage &gt; 0 &amp;&amp; !<a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>()) {</div>
<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;                <span class="keywordtype">bool</span>    dmg_normal   = dmg_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a3f1269bb215959df3dee891c711446aa">WeaponDesign::DMG_NORMAL</a>;</div>
<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;                <span class="keywordtype">bool</span>    dmg_power    = dmg_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a62f6eac7fa7567f9b9dac476867911d9">WeaponDesign::DMG_POWER</a>;</div>
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;                <span class="keywordtype">bool</span>    dmg_emp      = dmg_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a1a6c7c7a6f71715742a3bfba22b3fde9">WeaponDesign::DMG_EMP</a>;</div>
<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;</div>
<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;                <span class="keywordtype">double</span> sys_damage  = damage;</div>
<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;                <span class="keywordtype">double</span> avail       = system-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>();</div>
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;</div>
<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;                <span class="keywordflow">if</span> (dmg_normal || system-&gt;<a class="code" href="class_system.html#aaefaa9a8cda3196c9fd22b1a1c4066bc">IsPowerCritical</a>() &amp;&amp; dmg_emp) {</div>
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;                        system-&gt;<a class="code" href="class_system.html#a3f69f147467995360bf6c32f9b9509c5">ApplyDamage</a>(sys_damage);</div>
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;                        <a class="code" href="class_ship.html#a3e7aa479953ffd51241007d61de1fe27">master_caution</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;</div>
<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;                        <span class="keywordflow">if</span> (system-&gt;<a class="code" href="class_system.html#a38fb35c30f8e01d4d5aa4574c34fbe2f">GetExplosionType</a>() &amp;&amp; (avail - system-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>()) &gt;= 50) {</div>
<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;                                <span class="keywordtype">float</span> scale = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3aa65b313187ed5cc084097a0dac6490">explosion_scale</a>;</div>
<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;                                <span class="keywordflow">if</span> (scale &lt;= 0)</div>
<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;                                scale = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a926ba36ba08ffa6af1d2ee939b562f5a">scale</a>;</div>
<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;</div>
<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;                                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(system-&gt;<a class="code" href="class_system.html#a49fc8091a7770e9b59b80157f49cfd02">MountLocation</a>(), <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>() * 0.7f, system-&gt;<a class="code" href="class_system.html#a38fb35c30f8e01d4d5aa4574c34fbe2f">GetExplosionType</a>(), 0.2f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>, <span class="keyword">this</span>, system);</div>
<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;                        }</div>
<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;                }</div>
<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;        }</div>
<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;}</div>
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;</div>
<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01871"></a><span class="lineno"><a class="code" href="class_ship.html#a34135da6e9071fe0bc713b8612ce5e4a"> 1871</a></span>&#160;<a class="code" href="class_ship.html#a34135da6e9071fe0bc713b8612ce5e4a">Ship::SetNetSystemStatus</a>(<a class="code" href="class_system.html">System</a>* system, <span class="keywordtype">int</span> status, <span class="keywordtype">int</span> power, <span class="keywordtype">int</span> reactor, <span class="keywordtype">double</span> avail)</div>
<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;{</div>
<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;        <span class="keywordflow">if</span> (system &amp;&amp; !<a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>()) {</div>
<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;                <span class="keywordflow">if</span> (system-&gt;<a class="code" href="class_system.html#a15f8c78d743f2f1d8ff8edd311c9a0d1">GetPowerLevel</a>() != power)</div>
<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;                system-&gt;<a class="code" href="class_system.html#a7140a434ef4bb24e82c3088a0ef7fd8a">SetPowerLevel</a>(power);</div>
<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;</div>
<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;                <span class="keywordflow">if</span> (system-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>() != reactor) {</div>
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;                        <a class="code" href="class_system.html">System</a>* s = <a class="code" href="class_ship.html#a97ce3fd3783f434fec3d1c89adeda58e">GetSystem</a>(reactor);</div>
<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;</div>
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;                        <span class="keywordflow">if</span> (s &amp;&amp; s-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() == <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a026ee2e19b20d037399039e9342348e3">System::POWER_SOURCE</a>) {</div>
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;                                <a class="code" href="class_power_source.html">PowerSource</a>* reac = (<a class="code" href="class_power_source.html">PowerSource</a>*) s;</div>
<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;                                reac-&gt;<a class="code" href="class_power_source.html#a59abc86f4802c51cfdbd0103240e8761">AddClient</a>(system);</div>
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;                        }</div>
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;                }</div>
<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;</div>
<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;                <span class="keywordflow">if</span> (system-&gt;<a class="code" href="class_system.html#acc2d027a316b31ace051774e6cc70b1f">Status</a>() != status) {</div>
<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;                        <span class="keywordflow">if</span> (status == <a class="code" href="class_system.html#a01ad7eea57f4a2799a0159f4c3c75b07abaee8d3e97712781005e1037343479ec">System::MAINT</a>) {</div>
<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;                                <a class="code" href="class_list_iter.html">ListIter&lt;Component&gt;</a> comp = system-&gt;<a class="code" href="class_system.html#a4f4b4d23714503c6352dd613c539d8e1">GetComponents</a>();</div>
<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;                                <span class="keywordflow">while</span> (++comp) {</div>
<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;                                        <a class="code" href="class_component.html">Component</a>* c = comp.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;</div>
<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;                                        <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_component.html#a22ae23ae59ebad165999525293851b6b">Status</a>() &lt; <a class="code" href="class_component.html#aee687720a15ac9bcad0a5d682a5f7beea5031ea855152ed1341c6dabe0a3a265e">Component::NOMINAL</a> &amp;&amp; c-&gt;<a class="code" href="class_component.html#abf12d744bf994c6f7f4417ffafa8c9f9">Availability</a>() &lt; 75) {</div>
<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;                                                <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_component.html#a584bbff0cc482771a171f1b193e282af">SpareCount</a>()           &amp;&amp;</div>
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;                                                                c-&gt;<a class="code" href="class_component.html#a0735cf6563d7df58140a5c583be03179">ReplaceTime</a>() &lt;= 300   &amp;&amp;</div>
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;                                                                (c-&gt;<a class="code" href="class_component.html#abf12d744bf994c6f7f4417ffafa8c9f9">Availability</a>() &lt; 50 || </div>
<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;                                                                        c-&gt;<a class="code" href="class_component.html#a0735cf6563d7df58140a5c583be03179">ReplaceTime</a>()  &lt; c-&gt;<a class="code" href="class_component.html#a1662c2309c48b2d28438cb75cc1ed6cf">RepairTime</a>())) {</div>
<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;</div>
<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;                                                        c-&gt;<a class="code" href="class_component.html#a355b58f239ef8cff43129df25dc4aac8">Replace</a>();</div>
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;                                                }</div>
<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;</div>
<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;                                                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_component.html#abf12d744bf994c6f7f4417ffafa8c9f9">Availability</a>() &gt;= 50 || c-&gt;<a class="code" href="class_component.html#a73c5f23bbcf959e5be10fb0e918020aa">NumJerried</a>() &lt; 5) {</div>
<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;                                                        c-&gt;<a class="code" href="class_component.html#a19252c55056e52b7b18f2ebf74bf80bf">Repair</a>();</div>
<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;                                                }</div>
<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;                                        }</div>
<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;                                }</div>
<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;</div>
<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;                                <a class="code" href="class_ship.html#a4bceaa5cb15448a37b12c846bb22e651">RepairSystem</a>(system);</div>
<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;                        }</div>
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;                }</div>
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;</div>
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;                <span class="keywordflow">if</span> (system-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>() &lt; avail) {</div>
<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;                        system-&gt;<a class="code" href="class_system.html#aaa4144f1742d2d60ac94f468f4cbe161">SetNetAvail</a>(avail);</div>
<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;                }</div>
<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;                        system-&gt;<a class="code" href="class_system.html#aaa4144f1742d2d60ac94f468f4cbe161">SetNetAvail</a>(-1);</div>
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;                }</div>
<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;        }</div>
<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;}</div>
<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;</div>
<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;</div>
<div class="line"><a name="l01922"></a><span class="lineno"><a class="code" href="_ship_8cpp.html#a5275fece68028342c08cc947dc02415c"> 1922</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="_ship_8cpp.html#a5275fece68028342c08cc947dc02415c">IsWeaponBlockedFriendly</a>(<a class="code" href="class_weapon.html">Weapon</a>* w, <span class="keyword">const</span> <a class="code" href="class_sim_object.html">SimObject</a>* test)</div>
<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;{</div>
<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;        <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#a26824d0d3205f74d39caee34c45d134f">GetTarget</a>()) {</div>
<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;                <a class="code" href="struct_point.html">Point</a>  tgt = w-&gt;<a class="code" href="class_weapon.html#a26824d0d3205f74d39caee34c45d134f">GetTarget</a>()-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;                <a class="code" href="struct_point.html">Point</a>  obj = test-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;                <a class="code" href="struct_point.html">Point</a>  wep = w-&gt;<a class="code" href="class_system.html#a49fc8091a7770e9b59b80157f49cfd02">MountLocation</a>();</div>
<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;</div>
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;                <a class="code" href="struct_point.html">Point</a>  dir = tgt - wep;</div>
<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;                <span class="keywordtype">double</span> d   = dir.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;                <a class="code" href="struct_point.html">Point</a>  rho = obj - wep;</div>
<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;                <span class="keywordtype">double</span> r   = rho.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;</div>
<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;                <span class="comment">// if target is much closer than obstacle,</span></div>
<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;                <span class="comment">// don&#39;t worry about friendly fire...</span></div>
<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;                <span class="keywordflow">if</span> (d &lt; 1.5 * r)</div>
<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;</div>
<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;                <a class="code" href="struct_point.html">Point</a>  dst = dir * r + wep;</div>
<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;                <span class="keywordtype">double</span> <a class="code" href="_archive_8cpp.html#a6ce68847c12434f60d1b2654a3dc3409">err</a> = (obj - dst).length();</div>
<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;</div>
<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;                <span class="keywordflow">if</span> (err &lt; test-&gt;Radius() * 1.5)</div>
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;        }</div>
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;</div>
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;}</div>
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div>
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l01950"></a><span class="lineno"><a class="code" href="class_ship.html#af30fae0a9214975dcb15a38c241d10bb"> 1950</a></span>&#160;<a class="code" href="class_ship.html#af30fae0a9214975dcb15a38c241d10bb">Ship::CheckFriendlyFire</a>()</div>
<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;{</div>
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;        <span class="comment">// if no weapons, there is no worry about friendly fire...</span></div>
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &lt; 1)</div>
<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;</div>
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;        <span class="comment">// only check once each second</span></div>
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() - <a class="code" href="class_ship.html#a66f686af1177ba7989929a670eb5b01e">friendly_fire_time</a> &lt; 1000)</div>
<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;</div>
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;        <a class="code" href="class_list.html">List&lt;Weapon&gt;</a>   w_list;</div>
<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;        <span class="keywordtype">int</span>            i, j;</div>
<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;</div>
<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;        <span class="comment">// clear the FF blocked flag on all weapons</span></div>
<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;                <a class="code" href="class_weapon_group.html">WeaponGroup</a>* g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i];</div>
<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;</div>
<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; g-&gt;<a class="code" href="class_weapon_group.html#a9ed85b89e1ccd9248dc7ae2e1e51e761">NumWeapons</a>(); j++) {</div>
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;                        <a class="code" href="class_weapon.html">Weapon</a>* w  = g-&gt;<a class="code" href="class_weapon_group.html#a03dbe6de96e914728e382c6b9175f4f7">GetWeapon</a>(j);</div>
<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;                        w_list.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(w);</div>
<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;                        w-&gt;<a class="code" href="class_weapon.html#a3ffdc793d902dad1dd2a5e2cb0cf0b81">SetBlockedFriendly</a>(<span class="keyword">false</span>);</div>
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;                }</div>
<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;        }</div>
<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;</div>
<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;        <span class="comment">// for each friendly ship within some kind of weapons range,</span></div>
<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;Contact&gt;</a> c_iter = <a class="code" href="class_ship.html#a020ac1c3a07790d9f88eef601b08045d">ContactList</a>();</div>
<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;        <span class="keywordflow">while</span> (++c_iter) {</div>
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;                <a class="code" href="class_contact.html">Contact</a>* c     = c_iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;                <a class="code" href="class_ship.html">Ship</a>*    cship = c-&gt;<a class="code" href="class_contact.html#ade86a4b0e979ca7f818da017d6eb58ae">GetShip</a>();</div>
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;                <a class="code" href="class_shot.html">Shot</a>*    cshot = c-&gt;<a class="code" href="class_contact.html#ac40d7d76c482daa7f6e2bad736889621">GetShot</a>();</div>
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;</div>
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;                <span class="keywordflow">if</span> (cship &amp;&amp; cship != <span class="keyword">this</span> &amp;&amp; (cship-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == 0 || cship-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>())) {</div>
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;                        <span class="keywordtype">double</span> range = (cship-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>()).length();</div>
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;</div>
<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;                        <span class="keywordflow">if</span> (range &gt; 100e3)</div>
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;                        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;</div>
<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;                        <span class="comment">// check each unblocked weapon to see if it is blocked by that ship</span></div>
<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;                        <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> iter = w_list;</div>
<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;                        <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;                                <a class="code" href="class_weapon.html">Weapon</a>* w = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;</div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;                                <span class="keywordflow">if</span> (!w-&gt;<a class="code" href="class_weapon.html#ab76c15ecb45d47366e92066e01fcad7f">IsBlockedFriendly</a>())</div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;                                w-&gt;<a class="code" href="class_weapon.html#a3ffdc793d902dad1dd2a5e2cb0cf0b81">SetBlockedFriendly</a>(<a class="code" href="_ship_8cpp.html#a5275fece68028342c08cc947dc02415c">IsWeaponBlockedFriendly</a>(w, cship));</div>
<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;                        }</div>
<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;                }</div>
<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;</div>
<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cshot &amp;&amp; cshot-&gt;<a class="code" href="class_shot.html#af080b22214cb3ee405ec8ae7dacac5d2">GetIFF</a>() == <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>()) {</div>
<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;                        <span class="keywordtype">double</span> range = (cshot-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>()).length();</div>
<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;</div>
<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;                        <span class="keywordflow">if</span> (range &gt; 30e3)</div>
<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;                        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;</div>
<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;                        <span class="comment">// check each unblocked weapon to see if it is blocked by that shot</span></div>
<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;                        <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> iter = w_list;</div>
<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;                        <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;                                <a class="code" href="class_weapon.html">Weapon</a>* w = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;</div>
<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;                                <span class="keywordflow">if</span> (!w-&gt;<a class="code" href="class_weapon.html#ab76c15ecb45d47366e92066e01fcad7f">IsBlockedFriendly</a>())</div>
<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;                                w-&gt;<a class="code" href="class_weapon.html#a3ffdc793d902dad1dd2a5e2cb0cf0b81">SetBlockedFriendly</a>(<a class="code" href="_ship_8cpp.html#a5275fece68028342c08cc947dc02415c">IsWeaponBlockedFriendly</a>(w, cshot));</div>
<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;                        }</div>
<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;                }</div>
<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;        }</div>
<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;</div>
<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;        <a class="code" href="class_ship.html#a66f686af1177ba7989929a670eb5b01e">friendly_fire_time</a> = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() + (DWORD) <a class="code" href="_random_8cpp.html#a93eaa94ec1af8703c6427ed5431ec61c">Random</a>(0, 500);</div>
<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;}</div>
<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;</div>
<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;</div>
<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;<a class="code" href="class_ship.html">Ship</a>*</div>
<div class="line"><a name="l02020"></a><span class="lineno"><a class="code" href="class_ship.html#ab1fc663b588357920f62dd860a0fcc3e"> 2020</a></span>&#160;<a class="code" href="class_ship.html#ab1fc663b588357920f62dd860a0fcc3e">Ship::GetLeader</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a0d8d831ad366c226352afd1c39658fda">GetShip</a>(1);</div>
<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;</div>
<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="class_ship.html">Ship</a>*) <span class="keyword">this</span>;</div>
<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;}</div>
<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;</div>
<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l02029"></a><span class="lineno"><a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a"> 2029</a></span>&#160;<a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a">Ship::GetElementIndex</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a825ceae283bde924d5a19394c40c772d">FindIndex</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;</div>
<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;}</div>
<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;</div>
<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l02038"></a><span class="lineno"><a class="code" href="class_ship.html#a2ad17028c5801609aba3271eef2d75d1"> 2038</a></span>&#160;<a class="code" href="class_ship.html#a2ad17028c5801609aba3271eef2d75d1">Ship::GetOrigElementIndex</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a7262c061019b082471573a84d8102b0b">orig_elem_index</a>;</div>
<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;}</div>
<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;</div>
<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02044"></a><span class="lineno"><a class="code" href="class_ship.html#abcfab5f08cea66949dc96f29e0039e57"> 2044</a></span>&#160;<a class="code" href="class_ship.html#abcfab5f08cea66949dc96f29e0039e57">Ship::SetElement</a>(<a class="code" href="class_element.html">Element</a>* e)</div>
<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;{</div>
<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;        <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a> = e;</div>
<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;</div>
<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>) {</div>
<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;                <a class="code" href="class_ship.html#a22792b008d876b300f0c70fe1686b68f">combat_unit</a> = <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a0695399deec4957e2e2f4f5c99278d5e">GetCombatUnit</a>();</div>
<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;</div>
<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a22792b008d876b300f0c70fe1686b68f">combat_unit</a>) {</div>
<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;                        <a class="code" href="class_physical.html#a8e2b75659beeba7ed86a6f1199260c1c">integrity</a> = (float) (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af112b5efa577088b7ccbde199c2bb535">integrity</a> - <a class="code" href="class_ship.html#a22792b008d876b300f0c70fe1686b68f">combat_unit</a>-&gt;<a class="code" href="class_combat_unit.html#a783577700e24d24dc956ec9a6997993a">GetSustainedDamage</a>());</div>
<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;                }</div>
<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;</div>
<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;                <a class="code" href="class_ship.html#a7262c061019b082471573a84d8102b0b">orig_elem_index</a> = <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a825ceae283bde924d5a19394c40c772d">FindIndex</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;        }</div>
<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;}</div>
<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;</div>
<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02060"></a><span class="lineno"><a class="code" href="class_ship.html#ae8a696586e2f5106f13e0668c8f634b6"> 2060</a></span>&#160;<a class="code" href="class_ship.html#ae8a696586e2f5106f13e0668c8f634b6">Ship::SetLaunchPoint</a>(<a class="code" href="class_instruction.html">Instruction</a>* pt)</div>
<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;{</div>
<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;        <span class="keywordflow">if</span> (pt &amp;&amp; !<a class="code" href="class_ship.html#ac39aaeca25af0c45a9033afb0e259649">launch_point</a>)</div>
<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;        <a class="code" href="class_ship.html#ac39aaeca25af0c45a9033afb0e259649">launch_point</a> = pt;</div>
<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;}</div>
<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;</div>
<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02067"></a><span class="lineno"><a class="code" href="class_ship.html#a4324f62dfe05865f6adecf0498caac85"> 2067</a></span>&#160;<a class="code" href="class_ship.html#a4324f62dfe05865f6adecf0498caac85">Ship::AddNavPoint</a>(<a class="code" href="class_instruction.html">Instruction</a>* pt, <a class="code" href="class_instruction.html">Instruction</a>* after)</div>
<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;{</div>
<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a">GetElementIndex</a>() == 1)</div>
<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;        <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a4bed47625f71a787093711cbd8f2c417">AddNavPoint</a>(pt, after);</div>
<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;}</div>
<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;</div>
<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02074"></a><span class="lineno"><a class="code" href="class_ship.html#af1cd8a509d5d0b5815f83c5929ee240d"> 2074</a></span>&#160;<a class="code" href="class_ship.html#af1cd8a509d5d0b5815f83c5929ee240d">Ship::DelNavPoint</a>(<a class="code" href="class_instruction.html">Instruction</a>* pt)</div>
<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;{</div>
<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a">GetElementIndex</a>() == 1)</div>
<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;        <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a459cccc6cc7c88793450619cad433639">DelNavPoint</a>(pt);</div>
<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;}</div>
<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;</div>
<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02081"></a><span class="lineno"><a class="code" href="class_ship.html#a740768fb2c03be6cc45dbef94bd65967"> 2081</a></span>&#160;<a class="code" href="class_ship.html#a740768fb2c03be6cc45dbef94bd65967">Ship::ClearFlightPlan</a>()</div>
<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;{</div>
<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a">GetElementIndex</a>() == 1)</div>
<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;        <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a5c63540651865f593f13e3549738f57c">ClearFlightPlan</a>();</div>
<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;}</div>
<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;</div>
<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;</div>
<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l02090"></a><span class="lineno"><a class="code" href="class_ship.html#ab7f3628ae627dd35b675d8d6c6678276"> 2090</a></span>&#160;<a class="code" href="class_ship.html#ab7f3628ae627dd35b675d8d6c6678276">Ship::IsAutoNavEngaged</a>()</div>
<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;{</div>
<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a> &amp;&amp; <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#ab138eab011b2b0f13ae50cfe9e9f2b27">AutoNavEngaged</a>())</div>
<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;</div>
<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;}</div>
<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;</div>
<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02099"></a><span class="lineno"><a class="code" href="class_ship.html#accf7d20663ac99dca04f05209291ebeb"> 2099</a></span>&#160;<a class="code" href="class_ship.html#accf7d20663ac99dca04f05209291ebeb">Ship::SetAutoNav</a>(<span class="keywordtype">bool</span> engage)</div>
<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;{</div>
<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>) {</div>
<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#ab138eab011b2b0f13ae50cfe9e9f2b27">AutoNavEngaged</a>()) {</div>
<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;                        <span class="keywordflow">if</span> (!engage)</div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;                        <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#a8055a4baad25871968fbdc04f6631382">DisengageAutoNav</a>();</div>
<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;                }</div>
<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;                        <span class="keywordflow">if</span> (engage)</div>
<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;                        <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#a5c80a0650d6568d3bc6b15253e36ddaf">EngageAutoNav</a>();</div>
<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;                }</div>
<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;</div>
<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>)</div>
<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;                <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#aa39edd6ede70a4611a8592e4f1b0e825">GetControls</a>());</div>
<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;        }</div>
<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;}</div>
<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;</div>
<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02117"></a><span class="lineno"><a class="code" href="class_ship.html#a0497215a8c78ae3a906abf7e5f9928b5"> 2117</a></span>&#160;<a class="code" href="class_ship.html#a0497215a8c78ae3a906abf7e5f9928b5">Ship::CommandMode</a>()</div>
<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;{</div>
<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> || <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() != <a class="code" href="class_ship_ctrl.html#a77d1693a766ae07dcdc6ba3b1b2d0ca1ac38d672e0d43ff4c68e8a6b221f75d39">ShipCtrl::DIR_TYPE</a>) {</div>
<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;                <span class="keyword">const</span> <span class="keywordtype">char</span>* msg = <span class="stringliteral">&quot;Captain on the bridge&quot;</span>;</div>
<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;                <a class="code" href="class_radio_vox.html">RadioVox</a>*   vox = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_radio_vox.html">RadioVox</a>(0, <span class="stringliteral">&quot;1&quot;</span>, msg);</div>
<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;                </div>
<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;        <span class="keywordflow">if</span> (vox) {</div>
<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;            vox-&gt;<a class="code" href="class_radio_vox.html#af367b638e0b2bb3a0677fbb96be2d2b5">AddPhrase</a>(msg);</div>
<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;</div>
<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;            <span class="keywordflow">if</span> (!vox-&gt;<a class="code" href="class_radio_vox.html#aad79b59fe0fd4b6b3dfb1c3c18034212">Start</a>()) {</div>
<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;                <a class="code" href="class_radio_view.html#ad38d60f534f0f5444ca2977f428ad2cf">RadioView::Message</a>( <a class="code" href="class_radio_traffic.html#a088b548f9d588949fdb477a1ac80e4b2">RadioTraffic::TranslateVox</a>(msg) );</div>
<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;                <span class="keyword">delete</span> vox;</div>
<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;            }</div>
<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;        }</div>
<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div>
<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;                <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#aa39edd6ede70a4611a8592e4f1b0e825">GetControls</a>());</div>
<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;        }</div>
<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;</div>
<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;                <span class="keyword">const</span> <span class="keywordtype">char</span>* msg = <span class="stringliteral">&quot;Exec, you have the conn&quot;</span>;</div>
<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;                <a class="code" href="class_radio_vox.html">RadioVox</a>*   vox = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_radio_vox.html">RadioVox</a>(0, <span class="stringliteral">&quot;1&quot;</span>, msg);</div>
<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;                </div>
<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;        <span class="keywordflow">if</span> (vox) {</div>
<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;            vox-&gt;<a class="code" href="class_radio_vox.html#af367b638e0b2bb3a0677fbb96be2d2b5">AddPhrase</a>(msg);</div>
<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;</div>
<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;            <span class="keywordflow">if</span> (!vox-&gt;<a class="code" href="class_radio_vox.html#aad79b59fe0fd4b6b3dfb1c3c18034212">Start</a>()) {</div>
<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;                <a class="code" href="class_radio_view.html#ad38d60f534f0f5444ca2977f428ad2cf">RadioView::Message</a>( <a class="code" href="class_radio_traffic.html#a088b548f9d588949fdb477a1ac80e4b2">RadioTraffic::TranslateVox</a>(msg) );</div>
<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;                <span class="keyword">delete</span> vox;</div>
<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;            }</div>
<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;        }</div>
<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;</div>
<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;                <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;        }</div>
<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;}</div>
<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;</div>
<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;</div>
<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;<a class="code" href="class_instruction.html">Instruction</a>*</div>
<div class="line"><a name="l02155"></a><span class="lineno"><a class="code" href="class_ship.html#a738acca96fc9c03139c95f4dfb571f72"> 2155</a></span>&#160;<a class="code" href="class_ship.html#a738acca96fc9c03139c95f4dfb571f72">Ship::GetNextNavPoint</a>()</div>
<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;{</div>
<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ac39aaeca25af0c45a9033afb0e259649">launch_point</a> &amp;&amp; <a class="code" href="class_ship.html#ac39aaeca25af0c45a9033afb0e259649">launch_point</a>-&gt;<a class="code" href="class_instruction.html#ab91fd7075ce282925e4759651cb1f13b">Status</a>() &lt;= <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">Instruction::ACTIVE</a>)</div>
<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ac39aaeca25af0c45a9033afb0e259649">launch_point</a>;</div>
<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;</div>
<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#ad3dc0b78467f658d536174518ec2dc42">GetNextNavPoint</a>();</div>
<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;</div>
<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;}</div>
<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;</div>
<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l02167"></a><span class="lineno"><a class="code" href="class_ship.html#a5cd396ed43919ea8baffaa5b2a6cdc1e"> 2167</a></span>&#160;<a class="code" href="class_ship.html#a5cd396ed43919ea8baffaa5b2a6cdc1e">Ship::GetNavIndex</a>(<span class="keyword">const</span> <a class="code" href="class_instruction.html">Instruction</a>* n)</div>
<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;{</div>
<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a789899b34dd6879a707d1f278bf4dab0">GetNavIndex</a>(n);</div>
<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;</div>
<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;}</div>
<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;</div>
<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l02176"></a><span class="lineno"><a class="code" href="class_ship.html#a906559a96b9627b7f73bae4a6b2418bd"> 2176</a></span>&#160;<a class="code" href="class_ship.html#a906559a96b9627b7f73bae4a6b2418bd">Ship::RangeToNavPoint</a>(<span class="keyword">const</span> <a class="code" href="class_instruction.html">Instruction</a>* n)</div>
<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;{</div>
<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;        <span class="keywordtype">double</span> distance = 0;</div>
<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;</div>
<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;        <span class="keywordflow">if</span> (n &amp;&amp; n-&gt;<a class="code" href="class_instruction.html#a2a3fb2adea4970c9840ed2aaf1f525f3">Region</a>()) {</div>
<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;                <a class="code" href="struct_point.html">Point</a> npt = n-&gt;<a class="code" href="class_instruction.html#a2a3fb2adea4970c9840ed2aaf1f525f3">Region</a>()-&gt;<a class="code" href="class_sim_region.html#a2c2987f98cbe4f9543e1377838d8b4fe">Location</a>() + n-&gt;<a class="code" href="class_instruction.html#aaa1aa8ca619a1731afaa75b63f3f6cd0">Location</a>();</div>
<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;                npt -= <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>()-&gt;<a class="code" href="class_sim_region.html#a2c2987f98cbe4f9543e1377838d8b4fe">Location</a>();</div>
<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;                npt = npt.<a class="code" href="struct_point.html#a2a1fb1f8b18b27891423e3362561d6b0">OtherHand</a>(); <span class="comment">// convert from map to sim coords</span></div>
<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;</div>
<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;                distance = <a class="code" href="struct_point.html">Point</a>(npt - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>()).<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;        }</div>
<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;</div>
<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;        <span class="keywordflow">return</span> distance;</div>
<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;}</div>
<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;</div>
<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02192"></a><span class="lineno"><a class="code" href="class_ship.html#aa88187d5d8da7e2a7040b0e852f3a5c0"> 2192</a></span>&#160;<a class="code" href="class_ship.html#aa88187d5d8da7e2a7040b0e852f3a5c0">Ship::SetNavptStatus</a>(<a class="code" href="class_instruction.html">Instruction</a>* navpt, <span class="keywordtype">int</span> status)</div>
<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;{</div>
<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;        <span class="keywordflow">if</span> (navpt &amp;&amp; navpt-&gt;<a class="code" href="class_instruction.html#ab91fd7075ce282925e4759651cb1f13b">Status</a>() != status) {</div>
<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;                <span class="keywordflow">if</span> (status == <a class="code" href="class_instruction.html#a2979a7c6c235b740af5cce7116650344ae5ca6bc763dd4546d3eebf529c10c309">Instruction::COMPLETE</a>) {</div>
<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;                        <span class="keywordflow">if</span> (navpt-&gt;<a class="code" href="class_instruction.html#a445a8e3c2e4f3869893125d1b5075bd0">Action</a>() == <a class="code" href="class_instruction.html#a18f720d48a5aad2189fddc62c37a459ea21183f0971d62b6d6c716f4fa1ba0451">Instruction::ASSAULT</a>)</div>
<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;                        ::<a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">Print</a>(<span class="stringliteral">&quot;Completed Assault\n&quot;</span>);</div>
<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;</div>
<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (navpt-&gt;<a class="code" href="class_instruction.html#a445a8e3c2e4f3869893125d1b5075bd0">Action</a>() == <a class="code" href="class_instruction.html#a18f720d48a5aad2189fddc62c37a459ea637e24c0b953f7c85be8df5ef2edf09a">Instruction::STRIKE</a>)</div>
<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;                        ::<a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">Print</a>(<span class="stringliteral">&quot;Completed Strike\n&quot;</span>);</div>
<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;                }</div>
<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;</div>
<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;                navpt-&gt;<a class="code" href="class_instruction.html#ac2adc4dcc416730878bd250172b6341a">SetStatus</a>(status);</div>
<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;                </div>
<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;                <span class="keywordflow">if</span> (status == <a class="code" href="class_instruction.html#a2979a7c6c235b740af5cce7116650344ae5ca6bc763dd4546d3eebf529c10c309">Instruction::COMPLETE</a>)</div>
<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a29d7748fdabeace5b387c6fb4067fbd1">ProcessEventTrigger</a>(<a class="code" href="class_mission_event.html#aa2a151661e0ba18d98b391f839dea25ba8aa3cbbda1d2ad09a0264734dfaf6582">MissionEvent::TRIGGER_NAVPT</a>, 0, <a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>(), <a class="code" href="class_ship.html#a5cd396ed43919ea8baffaa5b2a6cdc1e">GetNavIndex</a>(navpt));</div>
<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;</div>
<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>) {</div>
<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;                        <span class="keywordtype">int</span> index = <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a789899b34dd6879a707d1f278bf4dab0">GetNavIndex</a>(navpt);</div>
<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;</div>
<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;                        <span class="keywordflow">if</span> (index &gt;= 0)</div>
<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;                        <a class="code" href="class_net_util.html#af7d4f4ad7517bf0b8db4234f6e0708af">NetUtil::SendNavData</a>(<span class="keyword">false</span>, <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>, index-1, navpt);</div>
<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;                }</div>
<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;        }</div>
<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;}</div>
<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;</div>
<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;<a class="code" href="class_list.html">List&lt;Instruction&gt;</a>&amp;</div>
<div class="line"><a name="l02218"></a><span class="lineno"><a class="code" href="class_ship.html#abb0a6f799d61e3b34ed45274f934a372"> 2218</a></span>&#160;<a class="code" href="class_ship.html#abb0a6f799d61e3b34ed45274f934a372">Ship::GetFlightPlan</a>()</div>
<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;{</div>
<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a96b2f160e678aa8b7e14e1daaac8afd5">GetFlightPlan</a>();</div>
<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;</div>
<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;        <span class="keyword">static</span> <a class="code" href="class_list.html">List&lt;Instruction&gt;</a> dummy_flight_plan;</div>
<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;        <span class="keywordflow">return</span> dummy_flight_plan;</div>
<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;}</div>
<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;</div>
<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l02228"></a><span class="lineno"><a class="code" href="class_ship.html#a2e1af4c14a54be3f7fe422ca788acae3"> 2228</a></span>&#160;<a class="code" href="class_ship.html#a2e1af4c14a54be3f7fe422ca788acae3">Ship::FlightPlanLength</a>()</div>
<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;{</div>
<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#afd9f907bcf7fda3391a3e6ff8184289a">FlightPlanLength</a>();</div>
<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;</div>
<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;}</div>
<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;</div>
<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;</div>
<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02239"></a><span class="lineno"><a class="code" href="class_ship.html#aa0a6edbfed6e0860ed838c0c83c6f5fa"> 2239</a></span>&#160;<a class="code" href="class_ship.html#aa0a6edbfed6e0860ed838c0c83c6f5fa">Ship::SetWard</a>(<a class="code" href="class_ship.html">Ship</a>* s)</div>
<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;{</div>
<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af95bd3e57a8fc99fc3e5245ff3df7a78">ward</a> == s)</div>
<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;</div>
<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;        <a class="code" href="class_ship.html#af95bd3e57a8fc99fc3e5245ff3df7a78">ward</a> = s;</div>
<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;</div>
<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af95bd3e57a8fc99fc3e5245ff3df7a78">ward</a>)</div>
<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;        <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(<a class="code" href="class_ship.html#af95bd3e57a8fc99fc3e5245ff3df7a78">ward</a>);</div>
<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;}</div>
<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;</div>
<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;</div>
<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02253"></a><span class="lineno"><a class="code" href="class_ship.html#a882257be36111642f1822752a4f413da"> 2253</a></span>&#160;<a class="code" href="class_ship.html#a882257be36111642f1822752a4f413da">Ship::SetTarget</a>(<a class="code" href="class_sim_object.html">SimObject</a>* targ, <a class="code" href="class_system.html">System</a>* sub, <span class="keywordtype">bool</span> from_net)</div>
<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;{</div>
<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;        <span class="keywordflow">if</span> (targ &amp;&amp; targ-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982a883a4c0d3bae3a294a55a710f8bd7cf4">SimObject::SIM_SHIP</a>) {</div>
<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;                <a class="code" href="class_ship.html">Ship</a>* targ_ship = (<a class="code" href="class_ship.html">Ship</a>*) targ;</div>
<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;</div>
<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;                <span class="keywordflow">if</span> (targ_ship &amp;&amp; targ_ship-&gt;<a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>())</div>
<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;        }</div>
<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;</div>
<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> != targ) {</div>
<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;                <span class="comment">// DON&#39;T IGNORE TARGET, BECAUSE IT MAY BE IN THREAT LIST</span></div>
<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;                <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> = targ;</div>
<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>) <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>);</div>
<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;</div>
<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a> &amp;&amp; <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>)</div>
<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a29d7748fdabeace5b387c6fb4067fbd1">ProcessEventTrigger</a>(<a class="code" href="class_mission_event.html#aa2a151661e0ba18d98b391f839dea25ba75f31475dcc63dc05d562048f40eed44">MissionEvent::TRIGGER_TARGET</a>, 0, <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>-&gt;<a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>());</div>
<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;        }</div>
<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;</div>
<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;        <a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a> = sub;</div>
<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;</div>
<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> weapon = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;        <span class="keywordflow">while</span> (++weapon) {</div>
<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;                <span class="keywordflow">if</span> (weapon-&gt;<a class="code" href="class_weapon_group.html#abc7fd6a903b12e141c6d25256a957ec7">GetFiringOrders</a>() != <a class="code" href="class_weapon.html#a939a47bff4d001de54860169efc4f554af58cf56b3591a6600a7c1643e0581c95">Weapon::POINT_DEFENSE</a>) {</div>
<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;                        weapon-&gt;<a class="code" href="class_weapon_group.html#a3fa71b6748724860ecfe01872bfe9651">SetTarget</a>(<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>, <a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a>);</div>
<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;</div>
<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;                        <span class="keywordflow">if</span> (sub || !<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>())</div>
<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;                        weapon-&gt;<a class="code" href="class_weapon_group.html#a77ca2fb1b6d6960cbaf276720f81df18">SetSweep</a>(<a class="code" href="class_weapon.html#a11ed0cd66acd7bf3b9739b6794580e43ae24443c9305b2f28bb1db5a8e66cee26">Weapon::SWEEP_NONE</a>);</div>
<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;                        weapon-&gt;<a class="code" href="class_weapon_group.html#a77ca2fb1b6d6960cbaf276720f81df18">SetSweep</a>(<a class="code" href="class_weapon.html#a11ed0cd66acd7bf3b9739b6794580e43a495094dd6eb2e52bbd4bfa3af7360599">Weapon::SWEEP_TIGHT</a>);</div>
<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;                }</div>
<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;        }</div>
<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;</div>
<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;        <span class="keywordflow">if</span> (!from_net &amp;&amp; <a class="code" href="class_net_game.html#a019dbd91861b01d0ca35cef0e1f4066e">NetGame::GetInstance</a>())</div>
<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;        <a class="code" href="class_net_util.html#a75d81ba55c2cf676c9b5f2ea98c445c8">NetUtil::SendObjTarget</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;</div>
<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;        <span class="comment">// track engagement:</span></div>
<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> &amp;&amp; <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982a883a4c0d3bae3a294a55a710f8bd7cf4">SimObject::SIM_SHIP</a>) {</div>
<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;                <a class="code" href="class_element.html">Element</a>* elem     = <a class="code" href="class_ship.html#a791d746356184004b55fa8ad874ac31e">GetElement</a>();</div>
<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;                <a class="code" href="class_element.html">Element</a>* tgt_elem = ((<a class="code" href="class_ship.html">Ship</a>*) <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>)-&gt;GetElement();</div>
<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;</div>
<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;                <span class="keywordflow">if</span> (elem)</div>
<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;                elem-&gt;<a class="code" href="class_element.html#a94ceb0fc6e23154e63868a015d6aac7e">SetAssignment</a>(tgt_elem);</div>
<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;        }</div>
<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;}</div>
<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;</div>
<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02299"></a><span class="lineno"><a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031"> 2299</a></span>&#160;<a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">Ship::DropTarget</a>()</div>
<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;{</div>
<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;        <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>       = 0;</div>
<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;        <a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a>    = 0;</div>
<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;</div>
<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;        <a class="code" href="class_ship.html#a882257be36111642f1822752a4f413da">SetTarget</a>(<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>, <a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a>);</div>
<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;}</div>
<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;</div>
<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;</div>
<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02310"></a><span class="lineno"><a class="code" href="class_ship.html#a6d5480665d1ffa5485dd24188e464040"> 2310</a></span>&#160;<a class="code" href="class_ship.html#a6d5480665d1ffa5485dd24188e464040">Ship::CycleSubTarget</a>(<span class="keywordtype">int</span> dir)</div>
<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;{</div>
<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> || <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() != <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982a883a4c0d3bae3a294a55a710f8bd7cf4">SimObject::SIM_SHIP</a>)</div>
<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;</div>
<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;        <a class="code" href="class_ship.html">Ship</a>* tgt = (<a class="code" href="class_ship.html">Ship</a>*) <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>;</div>
<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;</div>
<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;        <span class="keywordflow">if</span> (tgt-&gt;<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>())</div>
<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;</div>
<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;        <a class="code" href="class_system.html">System</a>*  subtgt   = 0;</div>
<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;</div>
<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> sys = tgt-&gt;<a class="code" href="class_ship.html#a589468f5d9ae80834b37d4d18b8bd13f">Systems</a>();</div>
<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;</div>
<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;        <span class="keywordflow">if</span> (dir &gt; 0) {</div>
<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;                <span class="keywordtype">int</span> latch = (<a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a> == 0);</div>
<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;                <span class="keywordflow">while</span> (++sys) {</div>
<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;                        <span class="keywordflow">if</span> (sys-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() == <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a8d4b9a13a194b1249021052f6a1504ac">System::COMPUTER</a> || <span class="comment">// computers are not targetable</span></div>
<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;                                        sys-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() == <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a56097819c97f2471a00b316aa963a3dd">System::SENSOR</a>)     <span class="comment">// sensors   are not targetable</span></div>
<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;                        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;</div>
<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;                        <span class="keywordflow">if</span> (sys.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>() == <a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a>) {</div>
<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;                                latch = 1;</div>
<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;                        }</div>
<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;</div>
<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (latch) {</div>
<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;                                subtgt = sys.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;                                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;                        }</div>
<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;                }</div>
<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;        }</div>
<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;</div>
<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160;                <a class="code" href="class_system.html">System</a>* prev = 0;</div>
<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;</div>
<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;                <span class="keywordflow">while</span> (++sys) {</div>
<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;                        <span class="keywordflow">if</span> (sys-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() == <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a8d4b9a13a194b1249021052f6a1504ac">System::COMPUTER</a> || <span class="comment">// computers are not targetable</span></div>
<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;                                        sys-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() == <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a56097819c97f2471a00b316aa963a3dd">System::SENSOR</a>)     <span class="comment">// sensors   are not targetable</span></div>
<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;                        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;</div>
<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;                        <span class="keywordflow">if</span> (sys.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>() == <a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a>) {</div>
<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;                                subtgt = prev;</div>
<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;                                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;                        }</div>
<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;</div>
<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;                        prev = sys.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;                }</div>
<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;</div>
<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;                <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a>)</div>
<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;                subtgt = prev;</div>
<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;        }</div>
<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;</div>
<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;        <a class="code" href="class_ship.html#a882257be36111642f1822752a4f413da">SetTarget</a>(tgt, subtgt);</div>
<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;}</div>
<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;</div>
<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;</div>
<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02368"></a><span class="lineno"><a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a"> 2368</a></span>&#160;<a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">Ship::ExecFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;{</div>
<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;        ZeroMemory(<a class="code" href="class_ship.html#aa9fa7bcc6a1f49b5aa218589e380e481">trigger</a>, <span class="keyword">sizeof</span>(<a class="code" href="class_ship.html#aa9fa7bcc6a1f49b5aa218589e380e481">trigger</a>));</div>
<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;        <a class="code" href="class_ship.html#ab7364e9c7c89db7f3b37b71f80614548">altitude_agl</a> = -1.0e6f;</div>
<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;</div>
<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> &lt; <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7a34a1bcccbe6e4d8b75b7f683f6213290">LAUNCH</a>) {</div>
<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;                <a class="code" href="class_ship.html#a3b6a196c1b1c0ded12b987eaa4082ccc">DockFrame</a>(seconds);</div>
<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;        }</div>
<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;</div>
<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> == <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7a34a1bcccbe6e4d8b75b7f683f6213290">LAUNCH</a>  || </div>
<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;                        (<a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> == <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7a2b9d12b9da2f7c967ae3e799db4e7962">TAKEOFF</a> &amp;&amp; <a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() &gt; <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>())) {</div>
<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;                <a class="code" href="class_ship.html#a487378c464ef4df175fcf10501330f83">SetFlightPhase</a>(<a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">ACTIVE</a>);</div>
<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;        }</div>
<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;</div>
<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> &gt; 0) {</div>
<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;                <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> -= (float) seconds;</div>
<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;</div>
<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> &lt;= 0) {</div>
<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;                        <a class="code" href="class_ship.html#a2793733504fe78bdeccf65da9c5c7ad4">CompleteTransition</a>();</div>
<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;                        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;                }</div>
<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;</div>
<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a> &amp;&amp; <a class="code" href="class_ship.html#a52816aa006d339addfc7b199f586e7b6">IsDying</a>() &amp;&amp; <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a>) {</div>
<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;                        <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a>-&gt;<a class="code" href="class_ship_killer.html#a637d000df0c96da2fac3a9ebc618ce31">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;                }</div>
<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;        }</div>
<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;</div>
<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;        <span class="comment">// observers do not run out of power:</span></div>
<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>()) {</div>
<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[i]-&gt;SetFuelRange(1e6);</div>
<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;        }</div>
<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;</div>
<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858">IsStatic</a>()) {</div>
<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;                <a class="code" href="class_ship.html#af4df069d0cf5a9cd6551f5805506e7eb">StatFrame</a>(seconds);</div>
<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;        }</div>
<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;</div>
<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;        <a class="code" href="class_ship.html#af30fae0a9214975dcb15a38c241d10bb">CheckFriendlyFire</a>();</div>
<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;        <a class="code" href="class_ship.html#af1f89196e6d87629c46743e2bf752316">ExecNavFrame</a>(seconds);</div>
<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;        <a class="code" href="class_ship.html#a529316bbe22cb6e762bd1a96c574c82b">ExecEvalFrame</a>(seconds);</div>
<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;</div>
<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>()) {</div>
<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;                <span class="comment">// are we trying to make orbit?</span></div>
<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>().y &gt;= <a class="code" href="_terrain_region_8h.html#af7f21e37cf10a1d6af6dceee44ed27a3">TERRAIN_ALTITUDE_LIMIT</a>)</div>
<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;                <a class="code" href="class_ship.html#a07aa08a98f1ba26a40b9d1dc1401238f">MakeOrbit</a>();</div>
<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;        }</div>
<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;</div>
<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a4c286a7400f766ac66cc95c61d96133e">InTransition</a>()) {</div>
<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;                <a class="code" href="class_ship.html#a2ff89ada61fa64249fefdb58af940a39">ExecSensors</a>(seconds);</div>
<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;                <a class="code" href="class_ship.html#ad88fbb27e04b0ceb6e05286eb12abd08">ExecThrottle</a>(seconds);</div>
<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;        }</div>
<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;</div>
<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae36e2b791029c8e7c548bbe381b39aee">IsDropping</a>() || <a class="code" href="class_ship.html#a84eb3b15de4b77f5fc8c44347026b7e4">IsAttaining</a>() || <a class="code" href="class_ship.html#a7e9c574711d841fabf3a2648117a7093">IsSkipping</a>()) {</div>
<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;                <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> = 100;</div>
<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;        }</div>
<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;</div>
<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> &amp;&amp; <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>-&gt;<a class="code" href="class_physical.html#aec2a93daff24c5b87933914cbcb100fe">Life</a>() == 0) {</div>
<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;                <a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">DropTarget</a>();</div>
<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;        }</div>
<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;</div>
<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;        <a class="code" href="class_ship.html#ae456132bea966fed56d1ad761d168966">ExecPhysics</a>(seconds);</div>
<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;</div>
<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a4c286a7400f766ac66cc95c61d96133e">InTransition</a>()) {</div>
<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;                <a class="code" href="class_ship.html#a24610509a3296ba7a7b0eac38aa5c287">UpdateTrack</a>();</div>
<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;        }</div>
<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;</div>
<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;        <span class="comment">// are we docking?</span></div>
<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>()) {</div>
<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;Ship&gt;</a> iter = <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>()-&gt;<a class="code" href="class_sim_region.html#a0778ec2d6f3c11046811c72054195d4a">Carriers</a>();</div>
<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;</div>
<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;                <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;                        <a class="code" href="class_ship.html">Ship</a>* carrier_target = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;</div>
<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;                        <span class="keywordtype">double</span> range = (<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() - carrier_target-&gt;<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>()).length();</div>
<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;                        <span class="keywordflow">if</span> (range &gt; carrier_target-&gt;<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>() * 1.5)</div>
<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;                        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;</div>
<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;                        <span class="keywordflow">if</span> (carrier_target-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() || carrier_target-&gt;<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() == 0) {</div>
<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;                                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; carrier_target-&gt;<a class="code" href="class_ship.html#a84e3a8fc0b5c7be51b22c36edef7e251">NumFlightDecks</a>(); i++) {</div>
<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160;                                        <span class="keywordflow">if</span> (carrier_target-&gt;<a class="code" href="class_ship.html#a03dad25b3efb091cb27d98263c200446">GetFlightDeck</a>(i)-&gt;<a class="code" href="class_flight_deck.html#ac92fa7d68b8225f4d3b25f3f9bc7344a">Recover</a>(<span class="keyword">this</span>))</div>
<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;                                        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;                                }</div>
<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160;                        }</div>
<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;                }</div>
<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;        }</div>
<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;</div>
<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;        <a class="code" href="class_ship.html#ad06a1d990fbbd624c33e780e598035f4">ExecSystems</a>(seconds);</div>
<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160;        <a class="code" href="class_ship.html#ab1a3c9fb3307a31e05b1ca6d9f446220">ExecMaintFrame</a>(seconds);</div>
<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;</div>
<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0) {</div>
<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160;                <a class="code" href="class_camera.html">Camera</a>*  global_cam        = <a class="code" href="class_camera_director.html#a014c7cad9afe6aa93cbaf9dfd1e5cb60">CameraDirector::GetInstance</a>()-&gt;<a class="code" href="class_camera_director.html#a061cdee502334ec6b5b252b9033d68ab">GetCamera</a>();</div>
<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160;                <a class="code" href="struct_point.html">Point</a>    global_cam_loc    = global_cam-&gt;<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>();</div>
<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;                <span class="keywordtype">bool</span>     disable_shadows   = <span class="keyword">false</span>;</div>
<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;</div>
<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>[i]-&gt;ContainsPoint(global_cam_loc))</div>
<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160;                        disable_shadows = <span class="keyword">true</span>;</div>
<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;                }</div>
<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160;</div>
<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;                <a class="code" href="class_ship.html#af2974d6bd9e93988ae2df4dfb8a0cc48">EnableShadows</a>(!disable_shadows);</div>
<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160;        }</div>
<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;</div>
<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;        <span class="keywordflow">if</span> (!_finite(<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>().x)) {</div>
<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160;                <a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">DropTarget</a>();</div>
<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;        }</div>
<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;</div>
<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858">IsStatic</a>() &amp;&amp; !<a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">IsGroundUnit</a>() &amp;&amp; <a class="code" href="class_ship.html#a6b44a80bd5ebeab0a6d92f0ee09befa8">GetFlightModel</a>() &lt; 2)</div>
<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;        <a class="code" href="class_physical.html#abe8b831faa85d7022f641209213e18d7">CalcFlightPath</a>();</div>
<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160;}</div>
<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;</div>
<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;</div>
<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02483"></a><span class="lineno"><a class="code" href="class_ship.html#aa48218fe2c66ff8604b9f655bb89ec2e"> 2483</a></span>&#160;<a class="code" href="class_ship.html#aa48218fe2c66ff8604b9f655bb89ec2e">Ship::LaunchProbe</a>()</div>
<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160;{</div>
<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ac7ee091301ee82f0caf1cae3a9887e52">net_observer_mode</a>)</div>
<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160;</div>
<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a>) {</div>
<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160;                <a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a> = 0;</div>
<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160;        }</div>
<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160;</div>
<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>) {</div>
<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160;                <a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a> = (<a class="code" href="class_drone.html">Drone</a>*) <a class="code" href="class_ship.html#a010e3c9436aeba012fa716f799cb1ea1">probe</a>-&gt;<a class="code" href="class_weapon.html#afc2a282a50d257ab8f08646d5b3afdb2">Fire</a>();</div>
<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160;</div>
<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a>)</div>
<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;                <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(<a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a>);</div>
<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;</div>
<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a77c21538f4c452ea5ae3d2f8af689893">GetPlayerShip</a>() == <span class="keyword">this</span>)</div>
<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;                <a class="code" href="class_button.html#ae6e3175ed99c0da153a29a7d6fc244e0">Button::PlaySound</a>(<a class="code" href="class_button.html#a1d411105a1bda290cefbbb065bb685c8aa445cfeeb6181090e11c928557094d5b">Button::SND_REJECT</a>);</div>
<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;        }</div>
<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160;}</div>
<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;</div>
<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02504"></a><span class="lineno"><a class="code" href="class_ship.html#a0f97a46598e6f90414e8db4ba8abad31"> 2504</a></span>&#160;<a class="code" href="class_ship.html#a0f97a46598e6f90414e8db4ba8abad31">Ship::SetProbe</a>(<a class="code" href="class_drone.html">Drone</a>* d)</div>
<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;{</div>
<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a> != d) {</div>
<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;                <a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a> = d;</div>
<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;</div>
<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a>)</div>
<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;                <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(<a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a>);</div>
<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;        }</div>
<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;}</div>
<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;</div>
<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02515"></a><span class="lineno"><a class="code" href="class_ship.html#a2ff89ada61fa64249fefdb58af940a39"> 2515</a></span>&#160;<a class="code" href="class_ship.html#a2ff89ada61fa64249fefdb58af940a39">Ship::ExecSensors</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;{</div>
<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;        <span class="comment">// how visible are we?</span></div>
<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160;        <a class="code" href="class_ship.html#a4bd60ac2ccc8039b0177497eceb5095c">DoEMCON</a>();</div>
<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;</div>
<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;        <span class="comment">// what can we see?</span></div>
<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>)</div>
<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;        <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#ae1904b0a04ea67e6e9eb9aac25e6a5a8">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160;</div>
<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;        <span class="comment">// can we still see our target?   </span></div>
<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>) {</div>
<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160;                <span class="keywordtype">int</span> target_found = 0;</div>
<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;Contact&gt;</a> c_iter = <a class="code" href="class_ship.html#a020ac1c3a07790d9f88eef601b08045d">ContactList</a>();</div>
<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;                <span class="keywordflow">while</span> (++c_iter) {</div>
<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;                        <a class="code" href="class_contact.html">Contact</a>* c = c_iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160;</div>
<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> == c-&gt;<a class="code" href="class_contact.html#ade86a4b0e979ca7f818da017d6eb58ae">GetShip</a>() || <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> == c-&gt;<a class="code" href="class_contact.html#ac40d7d76c482daa7f6e2bad736889621">GetShot</a>()) {</div>
<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;                                target_found = 1;</div>
<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;</div>
<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160;                                <span class="keywordtype">bool</span> vis = c-&gt;<a class="code" href="class_contact.html#a0bbb9718e0e51e678fa69082ee123c82">Visible</a>(<span class="keyword">this</span>) || c-&gt;<a class="code" href="class_contact.html#a3cb519932405928550df6288767cf0c0">Threat</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160;</div>
<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;                                <span class="keywordflow">if</span> (!vis &amp;&amp; !c-&gt;<a class="code" href="class_contact.html#aca6334f87decc5aec7ce6a26f17708bd">PasLock</a>() &amp;&amp; !c-&gt;<a class="code" href="class_contact.html#a1b5b76da0db804bbf0129619e1d80dbd">ActLock</a>())</div>
<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;                                <a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">DropTarget</a>();</div>
<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160;                        }</div>
<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160;                }</div>
<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160;</div>
<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160;                <span class="keywordflow">if</span> (!target_found)</div>
<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;                <a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">DropTarget</a>();</div>
<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;        }   </div>
<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160;}</div>
<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;</div>
<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;</div>
<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02549"></a><span class="lineno"><a class="code" href="class_ship.html#af1f89196e6d87629c46743e2bf752316"> 2549</a></span>&#160;<a class="code" href="class_ship.html#af1f89196e6d87629c46743e2bf752316">Ship::ExecNavFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160;{</div>
<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160;        <span class="keywordtype">bool</span> auto_pilot = <span class="keyword">false</span>;</div>
<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;</div>
<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;        <span class="comment">// update director info string:</span></div>
<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;        <a class="code" href="class_ship.html#a713ab7b9451bea3db67837872a19d427">SetFLCSMode</a>(<a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a>);</div>
<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;</div>
<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>) {</div>
<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;                <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#a0c9e6a46b5f5c7eeaff46d6e1b2aebfb">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160;                </div>
<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#ab138eab011b2b0f13ae50cfe9e9f2b27">AutoNavEngaged</a>()) {</div>
<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> &amp;&amp; <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() == <a class="code" href="class_nav_a_i.html#adbc8559675cfd1568a25ace8c3b0e20fabd17543922919ba4a98165d0850e659c">NavAI::DIR_TYPE</a>) {</div>
<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160;                                <a class="code" href="class_nav_a_i.html">NavAI</a>* navai =  (<a class="code" href="class_nav_a_i.html">NavAI</a>*) <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160;</div>
<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160;                                <span class="keywordflow">if</span> (navai-&gt;<a class="code" href="class_nav_a_i.html#aa119f28c1173547879bf08cf541f7688">Complete</a>()) {</div>
<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;                                        <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#a8055a4baad25871968fbdc04f6631382">DisengageAutoNav</a>();</div>
<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160;                                        <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#aa39edd6ede70a4611a8592e4f1b0e825">GetControls</a>());</div>
<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160;                                }</div>
<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160;                                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160;                                        auto_pilot = <span class="keyword">true</span>;</div>
<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;                                }</div>
<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;                        }</div>
<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160;                }</div>
<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160;        }</div>
<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;</div>
<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160;        <span class="comment">// even if we are not on auto pilot,</span></div>
<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160;        <span class="comment">// have we completed the next navpoint?</span></div>
<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160;</div>
<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;        <a class="code" href="class_instruction.html">Instruction</a>* navpt = <a class="code" href="class_ship.html#a738acca96fc9c03139c95f4dfb571f72">GetNextNavPoint</a>();</div>
<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160;        <span class="keywordflow">if</span> (navpt &amp;&amp; !auto_pilot) {</div>
<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;                <span class="keywordflow">if</span> (navpt-&gt;<a class="code" href="class_instruction.html#a2a3fb2adea4970c9840ed2aaf1f525f3">Region</a>() == <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>()) {</div>
<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160;                        <span class="keywordtype">double</span> distance = 0;</div>
<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160;                        </div>
<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160;                        <a class="code" href="struct_point.html">Point</a> npt = navpt-&gt;<a class="code" href="class_instruction.html#aaa1aa8ca619a1731afaa75b63f3f6cd0">Location</a>();</div>
<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160;</div>
<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160;                        <span class="keywordflow">if</span> (navpt-&gt;<a class="code" href="class_instruction.html#a2a3fb2adea4970c9840ed2aaf1f525f3">Region</a>())</div>
<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;                        npt += navpt-&gt;<a class="code" href="class_instruction.html#a2a3fb2adea4970c9840ed2aaf1f525f3">Region</a>()-&gt;<a class="code" href="class_sim_region.html#a2c2987f98cbe4f9543e1377838d8b4fe">Location</a>();</div>
<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160;                        </div>
<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;                        <a class="code" href="class_sim.html">Sim</a>* <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a> = <a class="code" href="class_sim.html#a14b48a472bca6d04230c789fc4beab4c">Sim::GetSim</a>();</div>
<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160;                        <span class="keywordflow">if</span> (sim-&gt;<a class="code" href="class_sim.html#ad159ce0e0018f3b8d92f8cd96507f2ea">GetActiveRegion</a>())</div>
<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;                        npt -= sim-&gt;<a class="code" href="class_sim.html#ad159ce0e0018f3b8d92f8cd96507f2ea">GetActiveRegion</a>()-&gt;<a class="code" href="class_sim_region.html#a2c2987f98cbe4f9543e1377838d8b4fe">Location</a>();</div>
<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;</div>
<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;                        npt = npt.<a class="code" href="struct_point.html#a2a1fb1f8b18b27891423e3362561d6b0">OtherHand</a>();</div>
<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160;                        </div>
<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;                        <span class="comment">// distance from self to navpt:</span></div>
<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160;                        distance = <a class="code" href="struct_point.html">Point</a>(npt - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>()).<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160;                        </div>
<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160;                        <span class="keywordflow">if</span> (distance &lt; 10 * <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>())</div>
<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;                        <a class="code" href="class_ship.html#aa88187d5d8da7e2a7040b0e852f3a5c0">SetNavptStatus</a>(navpt, <a class="code" href="class_instruction.html#a2979a7c6c235b740af5cce7116650344ae5ca6bc763dd4546d3eebf529c10c309">Instruction::COMPLETE</a>);</div>
<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;                }</div>
<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160;        }</div>
<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;}</div>
<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;</div>
<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;</div>
<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02605"></a><span class="lineno"><a class="code" href="class_ship.html#a529316bbe22cb6e762bd1a96c574c82b"> 2605</a></span>&#160;<a class="code" href="class_ship.html#a529316bbe22cb6e762bd1a96c574c82b">Ship::ExecEvalFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;{</div>
<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;        <span class="comment">// is it already too late?</span></div>
<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a6b8e2705ced511545378e49b14573fdc">life</a> == 0 || <a class="code" href="class_physical.html#a8e2b75659beeba7ed86a6f1199260c1c">integrity</a> &lt; 1) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;</div>
<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160;        <span class="keyword">const</span>  DWORD EVAL_FREQUENCY  = 1000;   <span class="comment">// once every second</span></div>
<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160;        <span class="keyword">static</span> DWORD last_eval_frame = 0;      <span class="comment">// one ship per game frame</span></div>
<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160;</div>
<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a> &amp;&amp; <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a349fb48dfc003278e63d7eafa2cab6fc">NumObjectives</a>() &gt; 0            &amp;&amp;</div>
<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160;                        <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() - <a class="code" href="class_ship.html#a3eb6ba910217d05115c57da2ba529efa">last_eval_time</a> &gt; EVAL_FREQUENCY &amp;&amp;</div>
<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;                        last_eval_frame != <a class="code" href="class_game.html#ae6e2f4be1af7243aa7eb8ad615eb3e06">Game::Frame</a>()) {</div>
<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160;</div>
<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;                <a class="code" href="class_ship.html#a3eb6ba910217d05115c57da2ba529efa">last_eval_time</a>  = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>();</div>
<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160;                last_eval_frame = <a class="code" href="class_game.html#ae6e2f4be1af7243aa7eb8ad615eb3e06">Game::Frame</a>();</div>
<div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160;</div>
<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a349fb48dfc003278e63d7eafa2cab6fc">NumObjectives</a>(); i++) {</div>
<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;                        <a class="code" href="class_instruction.html">Instruction</a>* obj = <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a93b9a6781b0e7f2298f9024185b25422">GetObjective</a>(i);</div>
<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;</div>
<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160;                        <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="class_instruction.html#ab91fd7075ce282925e4759651cb1f13b">Status</a>() &lt;= <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">Instruction::ACTIVE</a>) {</div>
<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;                                obj-&gt;<a class="code" href="class_instruction.html#ac66f4cf0fc20f8f4ef7a32cede7f6780">Evaluate</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160;                        }</div>
<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160;                }</div>
<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160;        }</div>
<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160;}</div>
<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160;</div>
<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;</div>
<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02633"></a><span class="lineno"><a class="code" href="class_ship.html#ae456132bea966fed56d1ad761d168966"> 2633</a></span>&#160;<a class="code" href="class_ship.html#ae456132bea966fed56d1ad761d168966">Ship::ExecPhysics</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;{</div>
<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#afefce98c3697e2bcb2ff6eca25eba7f1">net_control</a>) {</div>
<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;                <a class="code" href="class_ship.html#afefce98c3697e2bcb2ff6eca25eba7f1">net_control</a>-&gt;<a class="code" href="class_director.html#ac4e89c6fafd80964ac8e44d5679279b8">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;                <a class="code" href="class_physical.html#ae2f2fa70cb366f708fe10065186e3ad0">Thrust</a>(seconds);  <span class="comment">// drive flare</span></div>
<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160;        }</div>
<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;                <a class="code" href="class_physical.html#ab4a9f94781e500cfc2e594d122b23927">thrust</a> = (float) <a class="code" href="class_physical.html#ae2f2fa70cb366f708fe10065186e3ad0">Thrust</a>(seconds);</div>
<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;                <a class="code" href="class_ship.html#afe36caa00d5973f5e88aaa9018c4069b">SetupAgility</a>();</div>
<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;</div>
<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160;                <span class="keywordflow">if</span> (seconds &gt; 0) {</div>
<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160;                        <a class="code" href="class_ship.html#afb906a30f8a81dfa01bc72dfc6a018fb">g_force</a> = 0.0f;</div>
<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;                }</div>
<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;</div>
<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>()) {</div>
<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160;                        <a class="code" href="struct_point.html">Point</a> v1 = <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a>;</div>
<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160;                        <a class="code" href="class_ship.html#a780272549173bd0a3e07a62043995761">AeroFrame</a>(seconds);</div>
<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160;                        <a class="code" href="struct_point.html">Point</a> v2 = <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a>;</div>
<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;                        <a class="code" href="struct_point.html">Point</a> dv = v2 - v1 + <a class="code" href="struct_point.html">Point</a>(0, <a class="code" href="class_physical.html#ab29b630ea2ca882c805e3c4feb9a8061">g_accel</a>*seconds, 0);</div>
<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160;</div>
<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;                        <span class="keywordflow">if</span> (seconds &gt; 0) {</div>
<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160;                                <a class="code" href="class_ship.html#afb906a30f8a81dfa01bc72dfc6a018fb">g_force</a> = (float) (dv * <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a38ab2061d58da025e9c95267505686ab">vup</a>() / seconds) / 9.8f;</div>
<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160;                        }</div>
<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160;                }</div>
<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160;</div>
<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a52816aa006d339addfc7b199f586e7b6">IsDying</a>() || <a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> &lt; 2) { <span class="comment">// standard and relaxed modes</span></div>
<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160;                        <a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">Physical::ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160;                }</div>
<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;</div>
<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;                <span class="keywordflow">else</span> {                                    <span class="comment">// arcade mode</span></div>
<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;                        <a class="code" href="class_physical.html#a88fac6ecccf78d96ccb164d1e9797f58">Physical::ArcadeFrame</a>(seconds);</div>
<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160;                }</div>
<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160;        }</div>
<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160;}</div>
<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;</div>
<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;</div>
<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02671"></a><span class="lineno"><a class="code" href="class_ship.html#ad88fbb27e04b0ceb6e05286eb12abd08"> 2671</a></span>&#160;<a class="code" href="class_ship.html#ad88fbb27e04b0ceb6e05286eb12abd08">Ship::ExecThrottle</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160;{</div>
<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;        <span class="keywordtype">double</span> spool = 75 * seconds;</div>
<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160;</div>
<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &lt; <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>)</div>
<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>-<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &lt; spool)</div>
<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160;        <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> = <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>;</div>
<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160;        <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> += spool;</div>
<div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160;</div>
<div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &gt; <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>)</div>
<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> - <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> &lt; spool)</div>
<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;        <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> = <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>;</div>
<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;        <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> -= spool;</div>
<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160;}</div>
<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;</div>
<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160;</div>
<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02691"></a><span class="lineno"><a class="code" href="class_ship.html#ad06a1d990fbbd624c33e780e598035f4"> 2691</a></span>&#160;<a class="code" href="class_ship.html#ad06a1d990fbbd624c33e780e598035f4">Ship::ExecSystems</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;{</div>
<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>)</div>
<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160;</div>
<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160;        <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160;</div>
<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;        <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;                <a class="code" href="class_system.html">System</a>* sys = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;</div>
<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;                sys-&gt;<a class="code" href="class_system.html#a14849bab7df47b35ea2c2985bb386a8a">Orient</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;</div>
<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;                <span class="comment">// sensors have already been executed,</span></div>
<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160;                <span class="comment">// they can not be run twice in a frame!</span></div>
<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160;                <span class="keywordflow">if</span> (sys-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() != <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a56097819c97f2471a00b316aa963a3dd">System::SENSOR</a>)</div>
<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160;                sys-&gt;<a class="code" href="class_system.html#ac45d175e0694915034973b51ad7fa6cb">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160;        }</div>
<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160;</div>
<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160;        <span class="comment">// hangars and weapon groups are not systems</span></div>
<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;        <span class="comment">// they must be executed separately from above</span></div>
<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>)</div>
<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160;        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>-&gt;<a class="code" href="class_hangar.html#ae43b898c8cea9ff2129f349ce1e1afaa">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;</div>
<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160;        <a class="code" href="class_ship.html#a7056266d7234bfbcea8ee862728b4a01">wep_mass</a>   = 0.0f;</div>
<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;        <a class="code" href="class_ship.html#ac05b1808d735b4445b06ca220d72fa60">wep_resist</a> = 0.0f;</div>
<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;</div>
<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;        <span class="keywordtype">bool</span> winchester_cycle = <span class="keyword">false</span>;</div>
<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;</div>
<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;                <a class="code" href="class_weapon_group.html">WeaponGroup</a>* w_group = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i];</div>
<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;                w_group-&gt;<a class="code" href="class_weapon_group.html#a553d0a94100f6ff7ee678e3d030f3160">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;</div>
<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;                <span class="keywordflow">if</span> (w_group-&gt;<a class="code" href="class_weapon_group.html#a7d5c12a2c81059e22b58e47ef7c3e488">GetTrigger</a>() &amp;&amp; w_group-&gt;<a class="code" href="class_weapon_group.html#abc7fd6a903b12e141c6d25256a957ec7">GetFiringOrders</a>() == <a class="code" href="class_weapon.html#a939a47bff4d001de54860169efc4f554a8be1579203caf713ed1285a8bbb4a908">Weapon::MANUAL</a>) {</div>
<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;</div>
<div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160;                        <a class="code" href="class_weapon.html">Weapon</a>* gun = w_group-&gt;<a class="code" href="class_weapon_group.html#ae00ef0e63d6f825fcc3ad8c3bcd702f6">GetSelected</a>();</div>
<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;</div>
<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;                        <a class="code" href="class_sim_object.html">SimObject</a>* gun_tgt = gun-&gt;<a class="code" href="class_weapon.html#a26824d0d3205f74d39caee34c45d134f">GetTarget</a>();</div>
<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;</div>
<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160;                        <span class="comment">// if no target has been designated for this</span></div>
<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160;                        <span class="comment">// weapon, let it guide on the contact closest</span></div>
<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;                        <span class="comment">// to its boresight.  this must be done before</span></div>
<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;                        <span class="comment">// firing the weapon.</span></div>
<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160;</div>
<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a> &amp;&amp; gun-&gt;<a class="code" href="class_weapon.html#a1a110d60a3c09866d70e817f09ecc95a">Guided</a>() &amp;&amp; !gun-&gt;<a class="code" href="class_weapon.html#ae1e41524ea0f306c6f4c2eae318ec1f8">Design</a>()-&gt;<a class="code" href="class_weapon_design.html#a04c587445da3b085e00c2d0c639f94b9">beam</a> &amp;&amp; !gun_tgt) {</div>
<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160;                                gun-&gt;<a class="code" href="class_weapon.html#aa14a17ff233dbd7ab1fcff219e59c35c">SetTarget</a>(<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#adbc39741146bc9123deb467ce488c9a5">AcquirePassiveTargetForMissile</a>(), 0);</div>
<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160;                        }</div>
<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160;</div>
<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160;                        gun-&gt;<a class="code" href="class_weapon.html#afc2a282a50d257ab8f08646d5b3afdb2">Fire</a>();</div>
<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160;</div>
<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160;                        w_group-&gt;<a class="code" href="class_weapon_group.html#a2b3173c5c05a71b6f42de82bb1ca17a2">SetTrigger</a>(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160;                        w_group-&gt;<a class="code" href="class_weapon_group.html#ad2c37ac4aa44974991f45cd44139fede">CycleWeapon</a>();</div>
<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160;                        w_group-&gt;<a class="code" href="class_weapon_group.html#a339c89d89bd15e1c4f8b7383f78b64f4">CheckAmmo</a>();</div>
<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160;</div>
<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160;                        <span class="comment">// was that the last shot from this missile group?</span></div>
<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160;                        <span class="keywordflow">if</span> (w_group-&gt;<a class="code" href="class_weapon_group.html#a6cb8a1b9bba7282b619ada6ae9dd92d3">IsMissile</a>() &amp;&amp; w_group-&gt;<a class="code" href="class_weapon_group.html#a1fd81dbe92928db3088bc065ee13e80e">Ammo</a>() &lt; 1) {</div>
<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160;</div>
<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160;                                <span class="comment">// is this the current secondary weapon group?</span></div>
<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>] == w_group) {</div>
<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160;                                        winchester_cycle = <span class="keyword">true</span>;</div>
<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160;                                }</div>
<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160;                        }</div>
<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;                }</div>
<div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160;</div>
<div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160;                <a class="code" href="class_ship.html#a7056266d7234bfbcea8ee862728b4a01">wep_mass</a>   += w_group-&gt;<a class="code" href="class_weapon_group.html#adace1feafd0ac931f983072c341f630c">Mass</a>();</div>
<div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160;                <a class="code" href="class_ship.html#ac05b1808d735b4445b06ca220d72fa60">wep_resist</a> += w_group-&gt;<a class="code" href="class_weapon_group.html#a41887963c5c7520759415761b3b853db">Resistance</a>();</div>
<div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160;        }</div>
<div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160;</div>
<div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160;        <span class="comment">// if we just fired the last shot in the current secondary</span></div>
<div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;        <span class="comment">// weapon group, auto cycle to another secondary weapon:</span></div>
<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160;        <span class="keywordflow">if</span> (winchester_cycle) {</div>
<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160;                <span class="keywordtype">int</span> old_secondary = <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>;</div>
<div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160;</div>
<div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160;                <a class="code" href="class_ship.html#add658dcb66b1000d73a25f55a1b0dcc4">CycleSecondary</a>();</div>
<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;</div>
<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160;                <span class="comment">// do not winchester-cycle to an A2G missile type, </span></div>
<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;                <span class="comment">// or a missile that is also out of ammo,</span></div>
<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160;                <span class="comment">// keep going!</span></div>
<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160;</div>
<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;                <span class="keywordflow">while</span> (<a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> != old_secondary) {</div>
<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160;                        <a class="code" href="class_weapon.html">Weapon</a>* missile = <a class="code" href="class_ship.html#a08b7da74631bf6548c5647346138fdf0">GetSecondary</a>();</div>
<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160;                        <span class="keywordflow">if</span> (missile &amp;&amp; missile-&gt;<a class="code" href="class_weapon.html#a4ce038dc32ca1925b1a542da3d4eab99">CanTarget</a>(<a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824acf235b7d63a43eaaa74bf04aafd7e606">Ship::GROUND_UNITS</a>))</div>
<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160;                        <a class="code" href="class_ship.html#add658dcb66b1000d73a25f55a1b0dcc4">CycleSecondary</a>();</div>
<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160;</div>
<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>]-&gt;Ammo() &lt; 1)</div>
<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160;                        <a class="code" href="class_ship.html#add658dcb66b1000d73a25f55a1b0dcc4">CycleSecondary</a>();</div>
<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;</div>
<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160;                        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160;                }</div>
<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160;        }</div>
<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160;</div>
<div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160;        <a class="code" href="class_physical.html#a7c68f6e32d5725d6ae0099400f7c0b6e">mass</a>    = (float) <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#ae75a3d62e1ac250b9c9e52fb127ceb40">mass</a>    + <a class="code" href="class_ship.html#a7056266d7234bfbcea8ee862728b4a01">wep_mass</a>;</div>
<div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160;</div>
<div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160;        if (<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>())</div>
<div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160;        <a class="code" href="class_ship.html#ab82ff67654277aec9aed92e8e2bab426">agility</a> = (<span class="keywordtype">float</span>) <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a155acb34d07e7ae69cd9acbc6807ab97">agility</a> - <a class="code" href="class_ship.html#ac05b1808d735b4445b06ca220d72fa60">wep_resist</a>;</div>
<div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160;</div>
<div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>) {</div>
<div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160;                <a class="code" href="class_solid.html">Solid</a>* solid = (<a class="code" href="class_solid.html">Solid</a>*) <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>;</div>
<div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160;                <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(solid-&gt;<a class="code" href="class_graphic.html#a0b6627c441a7e4e8d5a1ef04bd03880b">Location</a>());</div>
<div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160;                <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_solid.html#a387ee6d94b3b29bb6411aeca8d519166">SetOrientation</a>(solid-&gt;<a class="code" href="class_solid.html#a1d78a55ebf9711da164c72779825806b">Orientation</a>());</div>
<div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160;</div>
<div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;                <span class="keywordtype">bool</span> bubble = <span class="keyword">false</span>;</div>
<div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>)</div>
<div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160;                bubble = <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_shield.html#a3bcb8fbe2c7751c0e9c2e154c448e9e8">ShieldBubble</a>();</div>
<div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160;</div>
<div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_shield_rep.html#ad2d61759671a224642c2e061b910d8c1">ActiveHits</a>()) {</div>
<div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_shield_rep.html#a838fdd9d2bb319b0332d6846a0437cab">Energize</a>(seconds, bubble);</div>
<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160;                }</div>
<div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160;                }</div>
<div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160;        }</div>
<div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;</div>
<div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>) {</div>
<div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;                <a class="code" href="class_solid.html">Solid</a>* solid = (<a class="code" href="class_solid.html">Solid</a>*) <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>;</div>
<div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160;</div>
<div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160;                <a class="code" href="struct_point.html">Point</a> cpos   = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>()                + </div>
<div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160;                <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a276d8f65ae6c09a07add9f63bd356704">vrt</a>() * <a class="code" href="class_ship.html#a909ee8ec77aa159fa887465d6b8200be">bridge_vec</a>.<a class="code" href="struct_vec3.html#a2814580e9b9372738c0a61197ea46b51">x</a> +</div>
<div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160;                <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6767fa21da7413fe049cf64eed98f02f">vpn</a>() * <a class="code" href="class_ship.html#a909ee8ec77aa159fa887465d6b8200be">bridge_vec</a>.<a class="code" href="struct_vec3.html#abc1d241232cb04aa98217a942402ae68">y</a> + </div>
<div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160;                <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a38ab2061d58da025e9c95267505686ab">vup</a>() * <a class="code" href="class_ship.html#a909ee8ec77aa159fa887465d6b8200be">bridge_vec</a>.<a class="code" href="struct_vec3.html#a64f3f00cd2dd9076999eeb2f05210388">z</a>;</div>
<div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;</div>
<div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(cpos);</div>
<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_solid.html#a387ee6d94b3b29bb6411aeca8d519166">SetOrientation</a>(solid-&gt;<a class="code" href="class_solid.html#a1d78a55ebf9711da164c72779825806b">Orientation</a>());</div>
<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160;        }</div>
<div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160;}</div>
<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160;</div>
<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160;</div>
<div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02822"></a><span class="lineno"><a class="code" href="class_ship.html#a780272549173bd0a3e07a62043995761"> 2822</a></span>&#160;<a class="code" href="class_ship.html#a780272549173bd0a3e07a62043995761">Ship::AeroFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160;{</div>
<div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160;        <span class="keywordtype">float</span> g_save = <a class="code" href="class_physical.html#ab29b630ea2ca882c805e3c4feb9a8061">g_accel</a>;</div>
<div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160;</div>
<div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a7001f58e1ca4b79ff8a1a176384d8a4b">Class</a>() == <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a93cd56b53e74dda52d86a9084091cb94">LCA</a>) {</div>
<div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160;                <a class="code" href="class_physical.html#a33141f14054f7425edca7e92673135be">lat_thrust</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160;                <a class="code" href="class_physical.html#a27342f7cf678159a9c56a1c9c4e8d918">SetGravity</a>(0.0f);</div>
<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;        }</div>
<div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160;</div>
<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() &lt; <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>()) {</div>
<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160;                <a class="code" href="class_physical.html#a27342f7cf678159a9c56a1c9c4e8d918">SetGravity</a>(0.0f);</div>
<div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160;</div>
<div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;                <span class="comment">// on the ground/runway?</span></div>
<div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;                <span class="keywordtype">double</span> bottom = 1e9;</div>
<div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160;                <span class="keywordtype">double</span> tlevel = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>().<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a> - <a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>();</div>
<div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160;</div>
<div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;                <span class="comment">// taking off or landing?</span></div>
<div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;                <span class="keywordflow">if</span> (flight_phase &lt; ACTIVE || flight_phase &gt; <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7aaeb84a1258e111a96517032c0a322454">APPROACH</a>) {</div>
<div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad8a979aeaf2ff63b5ac05634554cae43">dock</a>)</div>
<div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>&#160;                        tlevel = <a class="code" href="class_ship.html#ad8a979aeaf2ff63b5ac05634554cae43">dock</a>-&gt;<a class="code" href="class_system.html#a49fc8091a7770e9b59b80157f49cfd02">MountLocation</a>().<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a>;</div>
<div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160;                }</div>
<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>&#160;</div>
<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160;                <span class="keywordflow">if</span> (tlevel &lt; 0)</div>
<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160;                tlevel = 0;</div>
<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160;</div>
<div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>)</div>
<div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160;                bottom = <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a23f729cf3fa2d1f199a6608babf87b34">GetTouchDown</a>()-1;</div>
<div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160;                bottom = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>().<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a>-6;</div>
<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160;</div>
<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160;                <span class="keywordflow">if</span> (bottom &lt; tlevel)</div>
<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160;                <a class="code" href="class_physical.html#a441070b74fe991914da5bc4d3b25124c">TranslateBy</a>(<a class="code" href="struct_point.html">Point</a>(0, bottom-tlevel, 0));</div>
<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160;        }</div>
<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160;</div>
<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160;        <span class="comment">// MODEL 2: ARCADE</span></div>
<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> &gt;= 2) {</div>
<div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160;                <a class="code" href="class_physical.html#a88fac6ecccf78d96ccb164d1e9797f58">Physical::ArcadeFrame</a>(seconds);</div>
<div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160;        }</div>
<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160;</div>
<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160;        <span class="comment">// MODEL 1: RELAXED</span></div>
<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> == 1) {</div>
<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;                <a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">Physical::ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;        }</div>
<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;</div>
<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;        <span class="comment">// MODEL 0: STANDARD</span></div>
<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160;                <span class="comment">// apply drag-torque (i.e. turn ship into</span></div>
<div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;                <span class="comment">// velocity vector to minimize drag):</span></div>
<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;</div>
<div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;                <a class="code" href="struct_point.html">Point</a>  vnrm = <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a>;</div>
<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160;                <span class="keywordtype">double</span> v    = vnrm.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160;                <span class="keywordtype">double</span> pitch_deflection = vnrm * <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a38ab2061d58da025e9c95267505686ab">vup</a>();</div>
<div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160;                <span class="keywordtype">double</span> yaw_deflection   = vnrm * <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a276d8f65ae6c09a07add9f63bd356704">vrt</a>();</div>
<div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160;</div>
<div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a33141f14054f7425edca7e92673135be">lat_thrust</a> &amp;&amp; v &lt; 250) {</div>
<div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>&#160;                }</div>
<div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160;</div>
<div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160;                        <span class="keywordflow">if</span> (v &lt; 250) {</div>
<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;                                <span class="keywordtype">double</span> factor = 1.2 + (250 - v) / 100;</div>
<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;</div>
<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;                                <a class="code" href="class_ship.html#a4f0f1545d4f119cd67e77030fdd80495">ApplyPitch</a>(pitch_deflection * -factor);</div>
<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160;                                <a class="code" href="class_physical.html#a4b5a83f5bd906e0c09ff326f5c0168a2">ApplyYaw</a>(yaw_deflection * factor);</div>
<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;</div>
<div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160;                                <a class="code" href="class_physical.html#aaefd9045f896c5322df107f980249f20">dp</a> += (float) (<a class="code" href="class_physical.html#a19430528448288c4b73b17f9f0e6418c">dp_acc</a> * seconds);</div>
<div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;                                <a class="code" href="class_physical.html#ac6071904c1e17537adef89fbae9f3942">dy</a> += (float) (<a class="code" href="class_physical.html#a122baad9132db172b9e1103c736df69a">dy_acc</a> * seconds);</div>
<div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160;                        }</div>
<div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160;</div>
<div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160;                                <span class="keywordflow">if</span> (fabs(pitch_deflection) &gt; <a class="code" href="class_physical.html#a091ee071ff79007c87e33f0ff2cb574c">stall</a>) {</div>
<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160;                                        <a class="code" href="class_ship.html#a4f0f1545d4f119cd67e77030fdd80495">ApplyPitch</a>(pitch_deflection * -1.2);</div>
<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160;                                        <a class="code" href="class_physical.html#aaefd9045f896c5322df107f980249f20">dp</a> += (float) (<a class="code" href="class_physical.html#a19430528448288c4b73b17f9f0e6418c">dp_acc</a> * seconds);</div>
<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160;                                }</div>
<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160;</div>
<div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160;                                <a class="code" href="class_physical.html#a4b5a83f5bd906e0c09ff326f5c0168a2">ApplyYaw</a>(yaw_deflection * 2);</div>
<div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160;                                <a class="code" href="class_physical.html#ac6071904c1e17537adef89fbae9f3942">dy</a> += (float) (<a class="code" href="class_physical.html#a122baad9132db172b9e1103c736df69a">dy_acc</a> * seconds);</div>
<div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160;                        }</div>
<div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160;                }</div>
<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;</div>
<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160;                <span class="comment">// compute rest of physics:</span></div>
<div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160;                <a class="code" href="class_ship.html#a780272549173bd0a3e07a62043995761">Physical::AeroFrame</a>(seconds);</div>
<div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160;        }</div>
<div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160;</div>
<div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160;        <a class="code" href="class_physical.html#a27342f7cf678159a9c56a1c9c4e8d918">SetGravity</a>(g_save);</div>
<div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160;}</div>
<div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>&#160;</div>
<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160;</div>
<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02911"></a><span class="lineno"><a class="code" href="class_ship.html#a2c9446cb44020b7d3dd3ebac05795647"> 2911</a></span>&#160;<a class="code" href="class_ship.html#a2c9446cb44020b7d3dd3ebac05795647">Ship::LinearFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160;{</div>
<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;        <a class="code" href="class_ship.html#a2c9446cb44020b7d3dd3ebac05795647">Physical::LinearFrame</a>(seconds);</div>
<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160;</div>
<div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>() || <a class="code" href="class_ship.html#a7001f58e1ca4b79ff8a1a176384d8a4b">Class</a>() != <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a93cd56b53e74dda52d86a9084091cb94">LCA</a>)</div>
<div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160;</div>
<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;        <span class="comment">// damp lateral movement in atmosphere:</span></div>
<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;</div>
<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;        <span class="comment">// side-to-side</span></div>
<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a>) {</div>
<div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160;                <a class="code" href="struct_point.html">Point</a> transvec = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a276d8f65ae6c09a07add9f63bd356704">vrt</a>();</div>
<div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160;                transvec *= (transvec * <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a>) * seconds * 0.5;</div>
<div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160;                <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a> -= transvec;</div>
<div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;        }</div>
<div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160;</div>
<div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;        <span class="comment">// fore-and-aft</span></div>
<div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> &amp;&amp; fabs(<a class="code" href="class_physical.html#ab4a9f94781e500cfc2e594d122b23927">thrust</a>) &lt; 1.0f) {</div>
<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;                <a class="code" href="struct_point.html">Point</a> transvec = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6767fa21da7413fe049cf64eed98f02f">vpn</a>();</div>
<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;                transvec *= (transvec * <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a>) * seconds * 0.25;</div>
<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;                <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a> -= transvec;</div>
<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;        }</div>
<div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;</div>
<div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;        <span class="comment">// up-and-down</span></div>
<div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a>) {</div>
<div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160;                <a class="code" href="struct_point.html">Point</a> transvec = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a38ab2061d58da025e9c95267505686ab">vup</a>();</div>
<div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160;                transvec *= (transvec * <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a>) * seconds * 0.5;</div>
<div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160;                <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a> -= transvec;</div>
<div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160;        }</div>
<div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160;}</div>
<div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160;</div>
<div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160;</div>
<div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02945"></a><span class="lineno"><a class="code" href="class_ship.html#a3b6a196c1b1c0ded12b987eaa4082ccc"> 2945</a></span>&#160;<a class="code" href="class_ship.html#a3b6a196c1b1c0ded12b987eaa4082ccc">Ship::DockFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>&#160;{</div>
<div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160;        <a class="code" href="class_ship.html#a31bf8e5066f6c4388a5a86ed9d4622a2">SelectDetail</a>(seconds);</div>
<div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160;</div>
<div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a77c21538f4c452ea5ae3d2f8af689893">GetPlayerShip</a>() == <span class="keyword">this</span>) {</div>
<div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>&#160;                <span class="comment">// Make sure the thruster sound is diabled</span></div>
<div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160;                <span class="comment">// when the player is on the runway or catapult</span></div>
<div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>) {</div>
<div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160;                        <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a3b016ef0ad4fea7b8ea48e568e38afe6">ExecTrans</a>(0,0,0);</div>
<div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160;                }</div>
<div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160;        }</div>
<div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160;</div>
<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>) {</div>
<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;                <span class="comment">// Update the graphic rep and light sources:</span></div>
<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;                <span class="comment">// (This is usually done by the physics class,</span></div>
<div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;                <span class="comment">// but when the ship is in dock, we skip the</span></div>
<div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160;                <span class="comment">// standard physics processing):</span></div>
<div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;                <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>());</div>
<div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160;                <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>-&gt;<a class="code" href="class_graphic.html#a22f30bba82bd8b78293d7fc3cec4c80f">SetOrientation</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6d34215f3a9eb4a163d0dfbac4a76dab">Orientation</a>());</div>
<div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;</div>
<div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#afd7fa6ca59a6efa5c5bd465793da09a1">light</a>)</div>
<div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;                <a class="code" href="class_physical.html#afd7fa6ca59a6efa5c5bd465793da09a1">light</a>-&gt;<a class="code" href="class_light.html#a2b5d22102dc029c87922646235d11b5d">MoveTo</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>());</div>
<div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160;</div>
<div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160;                <span class="keywordflow">while</span> (++iter)</div>
<div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;                iter-&gt;<a class="code" href="class_system.html#a14849bab7df47b35ea2c2985bb386a8a">Orient</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160;</div>
<div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160;                <span class="keywordtype">double</span> spool = 75 * seconds;</div>
<div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160;</div>
<div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> == <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7a409e6143eac19742d2ecff6c0a3cce18">DOCKING</a>) {</div>
<div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160;                        <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> = 0;</div>
<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;                        <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a>         = 0;</div>
<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;                }</div>
<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160;</div>
<div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &lt; <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>)</div>
<div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>-<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &lt; spool)</div>
<div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160;                <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> = <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>;</div>
<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160;                <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> += spool;</div>
<div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160;</div>
<div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &gt; <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>)</div>
<div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> - <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> &lt; spool)</div>
<div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160;                <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> = <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a>;</div>
<div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;                <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> -= spool;</div>
<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;</div>
<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;                <span class="comment">// make sure there is power to run the drive:</span></div>
<div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[i]-&gt;<a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;</div>
<div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;                <span class="comment">// count up weapon ammo for status mfd:</span></div>
<div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;                <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i]-&gt;<a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;</div>
<div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160;                <span class="comment">// show drive flare while on catapult:</span></div>
<div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>) {</div>
<div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160;                        <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>-&gt;<a class="code" href="class_drive.html#a7048d0ab88750a6d3be5a4ed24496137">SetThrottle</a>(<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a>);</div>
<div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;</div>
<div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &gt; 0)</div>
<div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160;                        <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>-&gt;<a class="code" href="class_drive.html#ab41c598f0856e44d4b789a940db3dac3">Thrust</a>(seconds);  <span class="comment">// show drive flare</span></div>
<div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;                }</div>
<div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;        }</div>
<div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;</div>
<div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a> &amp;&amp; !<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_graphic.html#ab9f2adb37fb32d55798758c7d85fe139">Hidden</a>()) {</div>
<div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160;                <a class="code" href="class_solid.html">Solid</a>* solid = (<a class="code" href="class_solid.html">Solid</a>*) <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>;</div>
<div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160;</div>
<div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;                <a class="code" href="struct_point.html">Point</a> cpos   = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>()                + </div>
<div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;                <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a276d8f65ae6c09a07add9f63bd356704">vrt</a>() * <a class="code" href="class_ship.html#a909ee8ec77aa159fa887465d6b8200be">bridge_vec</a>.<a class="code" href="struct_vec3.html#a2814580e9b9372738c0a61197ea46b51">x</a> +</div>
<div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;                <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6767fa21da7413fe049cf64eed98f02f">vpn</a>() * <a class="code" href="class_ship.html#a909ee8ec77aa159fa887465d6b8200be">bridge_vec</a>.<a class="code" href="struct_vec3.html#abc1d241232cb04aa98217a942402ae68">y</a> + </div>
<div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;                <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a38ab2061d58da025e9c95267505686ab">vup</a>() * <a class="code" href="class_ship.html#a909ee8ec77aa159fa887465d6b8200be">bridge_vec</a>.<a class="code" href="struct_vec3.html#a64f3f00cd2dd9076999eeb2f05210388">z</a>;</div>
<div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160;</div>
<div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(cpos);</div>
<div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_solid.html#a387ee6d94b3b29bb6411aeca8d519166">SetOrientation</a>(solid-&gt;<a class="code" href="class_solid.html#a1d78a55ebf9711da164c72779825806b">Orientation</a>());</div>
<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160;        }</div>
<div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160;}</div>
<div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160;</div>
<div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;</div>
<div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03024"></a><span class="lineno"><a class="code" href="class_ship.html#af4df069d0cf5a9cd6551f5805506e7eb"> 3024</a></span>&#160;<a class="code" href="class_ship.html#af4df069d0cf5a9cd6551f5805506e7eb">Ship::StatFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160;{</div>
<div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> != <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">ACTIVE</a>) {</div>
<div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160;                <a class="code" href="class_ship.html#a3e40b34f11fdfee21a1d1c178335a573">flight_phase</a> = <a class="code" href="class_ship.html#a4d0e058f0446563382399b0a34a3faa7acb99ff05556afe052f31eaf43aa26f96">ACTIVE</a>;</div>
<div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160;                <a class="code" href="class_ship.html#abf4babeec6d7433034fc60c9df63cf54">launch_time</a>  = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() + 1;</div>
<div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160;</div>
<div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>)</div>
<div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160;                <a class="code" href="class_ship.html#ae011212b524aefe897913c3a44e7bafc">element</a>-&gt;<a class="code" href="class_element.html#a84fe1d09ecb7fa0e0bce75f7ba680544">SetLaunchTime</a>(<a class="code" href="class_ship.html#abf4babeec6d7433034fc60c9df63cf54">launch_time</a>);</div>
<div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160;        }</div>
<div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160;</div>
<div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">IsGroundUnit</a>()) {</div>
<div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160;                <span class="comment">// glue buildings to the terrain:</span></div>
<div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160;                <a class="code" href="struct_point.html">Point</a>    loc     = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160;                <a class="code" href="class_terrain.html">Terrain</a>* terrain = <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>-&gt;<a class="code" href="class_sim_region.html#a7fa8f1f9c7a3bd663a120c02752fec61">GetTerrain</a>();</div>
<div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160;</div>
<div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160;                <span class="keywordflow">if</span> (terrain) {</div>
<div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160;                        loc.<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a> = terrain-&gt;<a class="code" href="class_terrain.html#a23567e7f11df8e0885e4729fd7984606">Height</a>(loc.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a>, loc.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a>);</div>
<div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160;                        <a class="code" href="class_physical.html#aaab110c0381fdc000018c6a65b9ef657">MoveTo</a>(loc);</div>
<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160;                }</div>
<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;        }</div>
<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;</div>
<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>) {</div>
<div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160;                <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>());</div>
<div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160;                <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>-&gt;<a class="code" href="class_graphic.html#a22f30bba82bd8b78293d7fc3cec4c80f">SetOrientation</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6d34215f3a9eb4a163d0dfbac4a76dab">Orientation</a>());</div>
<div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160;        }</div>
<div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160;</div>
<div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#afd7fa6ca59a6efa5c5bd465793da09a1">light</a>) {</div>
<div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;                <a class="code" href="class_physical.html#afd7fa6ca59a6efa5c5bd465793da09a1">light</a>-&gt;<a class="code" href="class_light.html#a2b5d22102dc029c87922646235d11b5d">MoveTo</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>());</div>
<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;        }</div>
<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;</div>
<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;        <a class="code" href="class_ship.html#a2ff89ada61fa64249fefdb58af940a39">ExecSensors</a>(seconds);</div>
<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160;</div>
<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a> &amp;&amp; <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>-&gt;<a class="code" href="class_physical.html#aec2a93daff24c5b87933914cbcb100fe">Life</a>() == 0) {</div>
<div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160;                <a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">DropTarget</a>();</div>
<div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160;        }</div>
<div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160;</div>
<div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>) <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#ac4e89c6fafd80964ac8e44d5679279b8">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160;</div>
<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;        <a class="code" href="class_ship.html#a31bf8e5066f6c4388a5a86ed9d4622a2">SelectDetail</a>(seconds);</div>
<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160;</div>
<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160;        <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160;</div>
<div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>) {</div>
<div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>&#160;                <span class="keywordflow">while</span> (++iter)</div>
<div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>&#160;                iter-&gt;<a class="code" href="class_system.html#a14849bab7df47b35ea2c2985bb386a8a">Orient</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160;</div>
<div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160;                <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[i]-&gt;<a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160;</div>
<div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160;                <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[i]-&gt;<a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160;</div>
<div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160;                <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++)</div>
<div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160;                <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i]-&gt;<a class="code" href="class_ship.html#abf980c43c7039ffd71aa3e10534dc00a">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160;</div>
<div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>) {</div>
<div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160;                        <a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>-&gt;<a class="code" href="class_farcaster.html#a8ba7110ff9594f93172b141fa1ad1e80">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>&#160;</div>
<div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() == 2) {</div>
<div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aedec8022fc4b2902641f8360616cf83c">farcaster</a>-&gt;<a class="code" href="class_system.html#aa681ae523a4c6e1befc0016294e3b346">Charge</a>() &gt; 99) {</div>
<div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160;                                        <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[0]-&gt;Enable();</div>
<div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160;                                        <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[1]-&gt;Disable();</div>
<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;                                }</div>
<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160;                                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160;                                        <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[0]-&gt;Disable();</div>
<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160;                                        <a class="code" href="class_ship.html#a896e7591b588db6070a1ec05724992d1">navlights</a>[1]-&gt;Enable();</div>
<div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160;                                }</div>
<div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>&#160;                        }</div>
<div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160;                }</div>
<div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160;</div>
<div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>)</div>
<div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160;                <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_shield.html#aa9c491837041a0e3b3a284d7f0e2118b">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160;</div>
<div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>)</div>
<div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;                <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>-&gt;<a class="code" href="class_hangar.html#ae43b898c8cea9ff2129f349ce1e1afaa">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160;</div>
<div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0) {</div>
<div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160;                        <a class="code" href="class_camera.html">Camera</a>*  global_cam        = <a class="code" href="class_camera_director.html#a014c7cad9afe6aa93cbaf9dfd1e5cb60">CameraDirector::GetInstance</a>()-&gt;<a class="code" href="class_camera_director.html#a061cdee502334ec6b5b252b9033d68ab">GetCamera</a>();</div>
<div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>&#160;                        <a class="code" href="struct_point.html">Point</a>    global_cam_loc    = global_cam-&gt;<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>();</div>
<div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>&#160;                        <span class="keywordtype">bool</span>     disable_shadows   = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03105"></a><span class="lineno"> 3105</span>&#160;</div>
<div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>&#160;                        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>&#160;                                <a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>[i]-&gt;ExecFrame(seconds);</div>
<div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160;</div>
<div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf54803f9cb3c7859b53be001fa27742">flight_decks</a>[i]-&gt;ContainsPoint(global_cam_loc))</div>
<div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160;                                disable_shadows = <span class="keyword">true</span>;</div>
<div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160;                        }</div>
<div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>&#160;</div>
<div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>&#160;                        <a class="code" href="class_ship.html#af2974d6bd9e93988ae2df4dfb8a0cc48">EnableShadows</a>(!disable_shadows);</div>
<div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>&#160;                }</div>
<div class="line"><a name="l03115"></a><span class="lineno"> 3115</span>&#160;        }</div>
<div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>&#160;</div>
<div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>) {</div>
<div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160;                <a class="code" href="class_solid.html">Solid</a>* solid = (<a class="code" href="class_solid.html">Solid</a>*) <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>;</div>
<div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160;                <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(solid-&gt;<a class="code" href="class_graphic.html#a0b6627c441a7e4e8d5a1ef04bd03880b">Location</a>());</div>
<div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>&#160;                <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_solid.html#a387ee6d94b3b29bb6411aeca8d519166">SetOrientation</a>(solid-&gt;<a class="code" href="class_solid.html#a1d78a55ebf9711da164c72779825806b">Orientation</a>());</div>
<div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>&#160;</div>
<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160;                <span class="keywordtype">bool</span> bubble = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>)</div>
<div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>&#160;                bubble = <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_shield.html#a3bcb8fbe2c7751c0e9c2e154c448e9e8">ShieldBubble</a>();</div>
<div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>&#160;</div>
<div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_shield_rep.html#ad2d61759671a224642c2e061b910d8c1">ActiveHits</a>()) {</div>
<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_shield_rep.html#a838fdd9d2bb319b0332d6846a0437cab">Energize</a>(seconds, bubble);</div>
<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160;                }</div>
<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160;                        <a class="code" href="class_ship.html#a3c3b056255bfb49db86612266df4fe86">shieldRep</a>-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160;                }</div>
<div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>&#160;        }</div>
<div class="line"><a name="l03134"></a><span class="lineno"> 3134</span>&#160;</div>
<div class="line"><a name="l03135"></a><span class="lineno"> 3135</span>&#160;        <span class="keywordflow">if</span> (!_finite(<a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>().x)) {</div>
<div class="line"><a name="l03136"></a><span class="lineno"> 3136</span>&#160;                <a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">DropTarget</a>();</div>
<div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160;        }</div>
<div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>&#160;}</div>
<div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>&#160;</div>
<div class="line"><a name="l03140"></a><span class="lineno"> 3140</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03141"></a><span class="lineno"> 3141</span>&#160;</div>
<div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>&#160;<a class="code" href="class_graphic.html">Graphic</a>*</div>
<div class="line"><a name="l03143"></a><span class="lineno"><a class="code" href="class_ship.html#acb3125088d49f50f93e61c948bccee47"> 3143</a></span>&#160;<a class="code" href="class_ship.html#acb3125088d49f50f93e61c948bccee47">Ship::Cockpit</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03145"></a><span class="lineno"> 3145</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>;</div>
<div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>&#160;}</div>
<div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160;</div>
<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03149"></a><span class="lineno"><a class="code" href="class_ship.html#a12372f053a945394f63992588322574c"> 3149</a></span>&#160;<a class="code" href="class_ship.html#a12372f053a945394f63992588322574c">Ship::ShowCockpit</a>()</div>
<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160;{</div>
<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>) {</div>
<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160;                <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160;</div>
<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160;                <span class="keywordflow">while</span> (++g) {</div>
<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160;                        <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> w = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160;                        <span class="keywordflow">while</span> (++w) {</div>
<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* turret = w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>();</div>
<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160;                                <span class="keywordflow">if</span> (turret) {</div>
<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160;                                        turret-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160;</div>
<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160;                                        <a class="code" href="class_solid.html">Solid</a>* turret_base = w-&gt;<a class="code" href="class_weapon.html#ae515393e0b2dfca348605deb867eab29">GetTurretBase</a>();</div>
<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160;                                        <span class="keywordflow">if</span> (turret_base)</div>
<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160;                                        turret_base-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;                                }</div>
<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160;</div>
<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160;                                <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#ae6f5e9e58208af1b804b60b62e83db4b">IsMissile</a>()) {</div>
<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160;                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; w-&gt;<a class="code" href="class_weapon.html#a1f251c3268deaff5dc3bd6877179fdb5">Ammo</a>(); i++) {</div>
<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160;                                                <a class="code" href="class_solid.html">Solid</a>* store = w-&gt;<a class="code" href="class_weapon.html#a2206e8b95b18d7a4da25b6459b7baf57">GetVisibleStore</a>(i);</div>
<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160;                                                <span class="keywordflow">if</span> (store) {</div>
<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160;                                                        store-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160;                                                }</div>
<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160;                                        }</div>
<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160;                                }</div>
<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160;                        }</div>
<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160;                }</div>
<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160;        }</div>
<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160;}</div>
<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160;</div>
<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03181"></a><span class="lineno"><a class="code" href="class_ship.html#a6cbd4b58015bb8098a4936e414085b14"> 3181</a></span>&#160;<a class="code" href="class_ship.html#a6cbd4b58015bb8098a4936e414085b14">Ship::HideCockpit</a>()</div>
<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160;{</div>
<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>)</div>
<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160;        <a class="code" href="class_ship.html#a4b1a79cacddfe35b0cd677e2e9feb1d4">cockpit</a>-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160;}</div>
<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160;</div>
<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160;</div>
<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03190"></a><span class="lineno"><a class="code" href="class_ship.html#a31bf8e5066f6c4388a5a86ed9d4622a2"> 3190</a></span>&#160;<a class="code" href="class_ship.html#a31bf8e5066f6c4388a5a86ed9d4622a2">Ship::SelectDetail</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160;{</div>
<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160;        <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a98e1f687a2ab642fd8050decbe338dd1">ExecFrame</a>(seconds);</div>
<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160;        <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a909e034593abc0724beadb7ccd5ea5b7">SetLocation</a>(<a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>(), <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>());</div>
<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160;</div>
<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160;        <span class="keywordtype">int</span> new_level = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a2bf80ee54d2b7784bed42fe423384a6c">GetDetailLevel</a>();</div>
<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160;</div>
<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> != new_level) {</div>
<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160;                <a class="code" href="class_scene.html">Scene</a>* scene = 0;</div>
<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160;</div>
<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160;                <span class="comment">// remove current rep from scene (if necessary):</span></div>
<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160;                        <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160;                        <span class="keywordflow">if</span> (g) {</div>
<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160;                                scene = g-&gt;<a class="code" href="class_graphic.html#ad61de5b90b46c991775d8fc41a9a1538">GetScene</a>();</div>
<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160;                                <span class="keywordflow">if</span> (scene)</div>
<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160;                                scene-&gt;<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(g);</div>
<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160;                        }</div>
<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160;                }</div>
<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160;                </div>
<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160;                <span class="comment">// switch to new rep:</span></div>
<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160;                <a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> = new_level;</div>
<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160;                <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a> = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>);</div>
<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160;</div>
<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160;                <span class="comment">// add new rep to scene (if necessary):</span></div>
<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160;                <span class="keywordflow">if</span> (scene) {</div>
<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160;                                <a class="code" href="class_graphic.html">Graphic</a>*   g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160;                                <a class="code" href="struct_point.html">Point</a>      s = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a7b70553902aaed1272ad2cbf64de1d3b">GetSpin</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160;                                <a class="code" href="struct_matrix.html">Matrix</a>     m = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6d34215f3a9eb4a163d0dfbac4a76dab">Orientation</a>();</div>
<div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>&#160;</div>
<div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160;                                m.<a class="code" href="struct_matrix.html#a3e2bffe4b3d999875653a0ffeb9970b5">Pitch</a>(s.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a>);</div>
<div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160;                                m.<a class="code" href="struct_matrix.html#ab46d7353f782f0a9a93d16ace7095145">Yaw</a>(s.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a>);</div>
<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160;                                m.<a class="code" href="struct_matrix.html#a023352aa2c1386a7ba4448f3d43332b6">Roll</a>(s.<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a>);</div>
<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;</div>
<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160;                                scene-&gt;<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(g);</div>
<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160;                                g-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>() + <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a209dae29a727aaa5794741af03aea6ce">GetOffset</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i));</div>
<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160;                                g-&gt;<a class="code" href="class_graphic.html#a22f30bba82bd8b78293d7fc3cec4c80f">SetOrientation</a>(m);</div>
<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160;                        }</div>
<div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160;</div>
<div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160;                        <span class="comment">// show/hide external stores and landing gear...</span></div>
<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#ae552a1c9407d8bb85cfb428ff9c2c965">NumLevels</a>() &gt; 0) {</div>
<div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a>)) {</div>
<div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>&#160;                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a58df8f2d1fe83516772e0608ddf0ac74">NumGear</a>(); i++) {</div>
<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160;                                                <a class="code" href="class_solid.html">Solid</a>* g = <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#afd49e275d6a224d6a956b3c01d3d70e0">GetGear</a>(i);</div>
<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160;</div>
<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160;                                                <span class="keywordflow">if</span> (g) {</div>
<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160;                                                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> == 0)</div>
<div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160;                                                        scene-&gt;<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(g);</div>
<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160;                                                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160;                                                        scene-&gt;<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(g);</div>
<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160;                                                }</div>
<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160;                                        }</div>
<div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160;                                }</div>
<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160;</div>
<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160;                                <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160;                                <span class="keywordflow">while</span> (++g) {</div>
<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160;                                        <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> w = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160;                                        <span class="keywordflow">while</span> (++w) {</div>
<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160;                                                <a class="code" href="class_solid.html">Solid</a>* turret = w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>();</div>
<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160;                                                <span class="keywordflow">if</span> (turret) {</div>
<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160;                                                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> == 0)</div>
<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160;                                                        scene-&gt;<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(turret);</div>
<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160;                                                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160;                                                        scene-&gt;<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(turret);</div>
<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160;</div>
<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160;                                                        <a class="code" href="class_solid.html">Solid</a>* turret_base = w-&gt;<a class="code" href="class_weapon.html#ae515393e0b2dfca348605deb867eab29">GetTurretBase</a>();</div>
<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160;                                                        <span class="keywordflow">if</span> (turret_base) {</div>
<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160;                                                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> == 0)</div>
<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160;                                                                scene-&gt;<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(turret_base);</div>
<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160;                                                                <span class="keywordflow">else</span></div>
<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;                                                                scene-&gt;<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(turret_base);</div>
<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160;                                                        }</div>
<div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160;                                                }</div>
<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160;                                                <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#ae6f5e9e58208af1b804b60b62e83db4b">IsMissile</a>()) {</div>
<div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160;                                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; w-&gt;<a class="code" href="class_weapon.html#a1f251c3268deaff5dc3bd6877179fdb5">Ammo</a>(); i++) {</div>
<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160;                                                                <a class="code" href="class_solid.html">Solid</a>* store = w-&gt;<a class="code" href="class_weapon.html#a2206e8b95b18d7a4da25b6459b7baf57">GetVisibleStore</a>(i);</div>
<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160;                                                                <span class="keywordflow">if</span> (store) {</div>
<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160;                                                                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a> == 0)</div>
<div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160;                                                                        scene-&gt;<a class="code" href="class_scene.html#a34357a38e17276d4eba0dcc241a74438">DelGraphic</a>(store);</div>
<div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160;                                                                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>&#160;                                                                        scene-&gt;<a class="code" href="class_scene.html#a2ef1e98afaf344348e0d58b1a26a3729">AddGraphic</a>(store);</div>
<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160;                                                                }</div>
<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160;                                                        }</div>
<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160;                                                }</div>
<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160;                                        }</div>
<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160;                                }</div>
<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160;                        }</div>
<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160;                }</div>
<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160;        }</div>
<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160;</div>
<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160;                <span class="keywordtype">int</span> nmodels = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>);</div>
<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160;</div>
<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160;                <span class="keywordflow">if</span> (nmodels &gt; 1) {</div>
<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; nmodels; i++) {</div>
<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160;                                <a class="code" href="class_graphic.html">Graphic</a>*   g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160;                                <a class="code" href="struct_point.html">Point</a>      s = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a7b70553902aaed1272ad2cbf64de1d3b">GetSpin</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160;                                <a class="code" href="struct_matrix.html">Matrix</a>     m = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6d34215f3a9eb4a163d0dfbac4a76dab">Orientation</a>();</div>
<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160;</div>
<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;                                m.<a class="code" href="struct_matrix.html#a3e2bffe4b3d999875653a0ffeb9970b5">Pitch</a>(s.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a>);</div>
<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160;                                m.<a class="code" href="struct_matrix.html#ab46d7353f782f0a9a93d16ace7095145">Yaw</a>(s.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a>);</div>
<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160;                                m.<a class="code" href="struct_matrix.html#a023352aa2c1386a7ba4448f3d43332b6">Roll</a>(s.<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a>);</div>
<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160;</div>
<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;                                g-&gt;<a class="code" href="class_graphic.html#af8bec5b637e4925c65fb77d8234fb266">MoveTo</a>(<a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a2a54ce5f1212212653acafa59809ce49">Pos</a>() + <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a209dae29a727aaa5794741af03aea6ce">GetOffset</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i));</div>
<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160;                                g-&gt;<a class="code" href="class_graphic.html#a22f30bba82bd8b78293d7fc3cec4c80f">SetOrientation</a>(m);</div>
<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160;                        }</div>
<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160;                }</div>
<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;        }</div>
<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160;}</div>
<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160;</div>
<div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;</div>
<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03304"></a><span class="lineno"><a class="code" href="class_ship.html#aef445cda0cf27083723dbceb8d928c86"> 3304</a></span>&#160;<a class="code" href="class_ship.html#aef445cda0cf27083723dbceb8d928c86">Ship::ShowRep</a>()</div>
<div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160;{</div>
<div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160;                <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160;                g-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160;        }</div>
<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160;</div>
<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a>)) {</div>
<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a58df8f2d1fe83516772e0608ddf0ac74">NumGear</a>(); i++) {</div>
<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* g = <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#afd49e275d6a224d6a956b3c01d3d70e0">GetGear</a>(i);</div>
<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160;                        <span class="keywordflow">if</span> (g) g-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160;                }</div>
<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160;        }</div>
<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160;</div>
<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;        <span class="keywordflow">while</span> (++g) {</div>
<div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> w = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160;                <span class="keywordflow">while</span> (++w) {</div>
<div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* turret = w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>();</div>
<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160;                        <span class="keywordflow">if</span> (turret) {</div>
<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160;                                turret-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160;</div>
<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* turret_base = w-&gt;<a class="code" href="class_weapon.html#ae515393e0b2dfca348605deb867eab29">GetTurretBase</a>();</div>
<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;                                <span class="keywordflow">if</span> (turret_base)</div>
<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160;                                turret_base-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160;                        }</div>
<div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160;</div>
<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160;                        <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#ae6f5e9e58208af1b804b60b62e83db4b">IsMissile</a>()) {</div>
<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160;                                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; w-&gt;<a class="code" href="class_weapon.html#a1f251c3268deaff5dc3bd6877179fdb5">Ammo</a>(); i++) {</div>
<div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160;                                        <a class="code" href="class_solid.html">Solid</a>* store = w-&gt;<a class="code" href="class_weapon.html#a2206e8b95b18d7a4da25b6459b7baf57">GetVisibleStore</a>(i);</div>
<div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160;                                        <span class="keywordflow">if</span> (store) {</div>
<div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160;                                                store-&gt;<a class="code" href="class_graphic.html#aab22ee91e157304613b8d54c125fe6ef">Show</a>();</div>
<div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160;                                        }</div>
<div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160;                                }</div>
<div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160;                        }</div>
<div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160;                }</div>
<div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160;        }</div>
<div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160;}</div>
<div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160;</div>
<div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03344"></a><span class="lineno"><a class="code" href="class_ship.html#a10ffbec92890bc36a938d2a59a944119"> 3344</a></span>&#160;<a class="code" href="class_ship.html#a10ffbec92890bc36a938d2a59a944119">Ship::HideRep</a>()</div>
<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160;{</div>
<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160;                <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;                g-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;        }</div>
<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;</div>
<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a> &amp;&amp; (<a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a746d3bb1647cda073c1aa12aec7c0476">GetState</a>() != <a class="code" href="class_landing_gear.html#a6b9fef9e03102ee8c08504eb0e90dfd0a20a64b01679cee6fd338c9c4a138a5f5">LandingGear::GEAR_UP</a>)) {</div>
<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#a58df8f2d1fe83516772e0608ddf0ac74">NumGear</a>(); i++) {</div>
<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* g = <a class="code" href="class_ship.html#ad4de0558e8983a7deee441544da26435">gear</a>-&gt;<a class="code" href="class_landing_gear.html#afd49e275d6a224d6a956b3c01d3d70e0">GetGear</a>(i);</div>
<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160;                        <span class="keywordflow">if</span> (g) g-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160;                }</div>
<div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160;        }</div>
<div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;</div>
<div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160;        <span class="keywordflow">while</span> (++g) {</div>
<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;Weapon&gt;</a> w = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160;                <span class="keywordflow">while</span> (++w) {</div>
<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* turret = w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>();</div>
<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160;                        <span class="keywordflow">if</span> (turret) {</div>
<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160;                                turret-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160;</div>
<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160;                                <a class="code" href="class_solid.html">Solid</a>* turret_base = w-&gt;<a class="code" href="class_weapon.html#ae515393e0b2dfca348605deb867eab29">GetTurretBase</a>();</div>
<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160;                                <span class="keywordflow">if</span> (turret_base)</div>
<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160;                                turret_base-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160;                        }</div>
<div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>&#160;</div>
<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160;                        <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#ae6f5e9e58208af1b804b60b62e83db4b">IsMissile</a>()) {</div>
<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160;                                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; w-&gt;<a class="code" href="class_weapon.html#a1f251c3268deaff5dc3bd6877179fdb5">Ammo</a>(); i++) {</div>
<div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160;                                        <a class="code" href="class_solid.html">Solid</a>* store = w-&gt;<a class="code" href="class_weapon.html#a2206e8b95b18d7a4da25b6459b7baf57">GetVisibleStore</a>(i);</div>
<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160;                                        <span class="keywordflow">if</span> (store) {</div>
<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160;                                                store-&gt;<a class="code" href="class_graphic.html#a06c7d7600a91914082c6cba1eb87dedf">Hide</a>();</div>
<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160;                                        }</div>
<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160;                                }</div>
<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160;                        }</div>
<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160;                }</div>
<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160;        }</div>
<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160;}</div>
<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160;</div>
<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03384"></a><span class="lineno"><a class="code" href="class_ship.html#af2974d6bd9e93988ae2df4dfb8a0cc48"> 3384</a></span>&#160;<a class="code" href="class_ship.html#af2974d6bd9e93988ae2df4dfb8a0cc48">Ship::EnableShadows</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160;{</div>
<div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#a6e58d06c944328b1292414fea65c4d6e">NumModels</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>); i++) {</div>
<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160;                <a class="code" href="class_graphic.html">Graphic</a>* g = <a class="code" href="class_ship.html#a4ad8e1ee8aee10bb32c9bdb7983b1e54">detail</a>.<a class="code" href="class_detail_set.html#af039682ea65f323df5862c36f6b1ad6a">GetRep</a>(<a class="code" href="class_ship.html#a156261f1806640d055505067d31dac93">detail_level</a>, i);</div>
<div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160;                </div>
<div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160;                <span class="keywordflow">if</span> (g-&gt;<a class="code" href="class_graphic.html#ae23d47d0eeea992b13a1edfac427e1db">IsSolid</a>()) {</div>
<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160;                        <a class="code" href="class_solid.html">Solid</a>* s = (<a class="code" href="class_solid.html">Solid</a>*) g;</div>
<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160;</div>
<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160;                        <a class="code" href="class_list_iter.html">ListIter&lt;Shadow&gt;</a> iter = s-&gt;<a class="code" href="class_solid.html#a0833c3d7cc457ce5ef38ae02f020c1ae">GetShadows</a>();</div>
<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160;                        <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160;                                <a class="code" href="class_shadow.html">Shadow</a>* shadow = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160;                                shadow-&gt;<a class="code" href="class_shadow.html#abb3d0458d1290b62d4ba36aec0aaf3a6">SetEnabled</a>(enable);</div>
<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160;                        }</div>
<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160;                }</div>
<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160;        }</div>
<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160;}</div>
<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160;</div>
<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160;</div>
<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l03404"></a><span class="lineno"><a class="code" href="class_ship.html#ac96bede77950995e37f151197c84fbcc"> 3404</a></span>&#160;<a class="code" href="class_ship.html#ac96bede77950995e37f151197c84fbcc">Ship::Update</a>(<a class="code" href="class_sim_object.html">SimObject</a>* obj)</div>
<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160;{</div>
<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160;        <span class="keywordflow">if</span> (obj == <a class="code" href="class_ship.html#af95bd3e57a8fc99fc3e5245ff3df7a78">ward</a>)</div>
<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160;        <a class="code" href="class_ship.html#af95bd3e57a8fc99fc3e5245ff3df7a78">ward</a> = 0;</div>
<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160;</div>
<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;        <span class="keywordflow">if</span> (obj == <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>) {</div>
<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160;                <a class="code" href="class_ship.html#af532f6b50ac8cfadf21927a67dbdd008">target</a>       = 0;</div>
<div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160;                <a class="code" href="class_ship.html#ad901436e17c631b19e3331dd5dec4536">subtarget</a>    = 0;</div>
<div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160;        }</div>
<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160;</div>
<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160;        <span class="keywordflow">if</span> (obj == <a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>) {</div>
<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160;                <a class="code" href="class_ship.html#a9c330a84c9a6437721918e4978d6bca2">carrier</a>      = 0;</div>
<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160;                <a class="code" href="class_ship.html#ad8a979aeaf2ff63b5ac05634554cae43">dock</a>         = 0;</div>
<div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160;                <a class="code" href="class_ship.html#a11784e42ab20e8db5395025e9cbdb399">inbound</a>      = 0;</div>
<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160;        }</div>
<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160;</div>
<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160;        <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982af19ae8c44fb3b12bc78ec664c65116f5">SimObject::SIM_SHOT</a> ||</div>
<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160;                        obj-&gt;<a class="code" href="class_physical.html#a2ce9ae48d2e4f4fb434bdc4083746068">Type</a>() == <a class="code" href="class_sim_object.html#a43f6bd6f43c6e7798b4f7ac729c53982ae13513f3708d04b53ead6fb2e85facad">SimObject::SIM_DRONE</a>) {</div>
<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160;                <a class="code" href="class_shot.html">Shot</a>* s = (<a class="code" href="class_shot.html">Shot</a>*) obj;</div>
<div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160;</div>
<div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a> == s)</div>
<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160;                <a class="code" href="class_ship.html#af970bcdddc94c6c91e346feb06861622">sensor_drone</a> = 0;</div>
<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160;</div>
<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a2f3e4054e712103540bebdc03f58c74d">decoy_list</a>.<a class="code" href="class_list.html#a191e00bc07b79de1075cb41c9d6702cf">contains</a>(s))</div>
<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160;                <a class="code" href="class_ship.html#a2f3e4054e712103540bebdc03f58c74d">decoy_list</a>.<a class="code" href="class_list.html#ae15a901edc7364cba3a3f3fdc10034f7">remove</a>(s);</div>
<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160;</div>
<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad80b7850e2414f0f30f8f721f30f5afd">threat_list</a>.<a class="code" href="class_list.html#a191e00bc07b79de1075cb41c9d6702cf">contains</a>(s))</div>
<div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160;                <a class="code" href="class_ship.html#ad80b7850e2414f0f30f8f721f30f5afd">threat_list</a>.<a class="code" href="class_list.html#ae15a901edc7364cba3a3f3fdc10034f7">remove</a>(s);</div>
<div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;        }</div>
<div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>&#160;</div>
<div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ac96bede77950995e37f151197c84fbcc">SimObserver::Update</a>(obj);</div>
<div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>&#160;}</div>
<div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160;</div>
<div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>&#160;</div>
<div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l03440"></a><span class="lineno"><a class="code" href="class_ship.html#a84bacb7e67841af77fcc05677b6eb2e2"> 3440</a></span>&#160;<a class="code" href="class_ship.html#a84bacb7e67841af77fcc05677b6eb2e2">Ship::GetFuelLevel</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0) {</div>
<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160;                <a class="code" href="class_power_source.html">PowerSource</a>* reactor = <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[0];</div>
<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160;                <span class="keywordflow">if</span> (reactor)</div>
<div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160;                <span class="keywordflow">return</span> reactor-&gt;<a class="code" href="class_power_source.html#a17b3ebb45f9f236dbabb8ffc2be5d3f4">Charge</a>();</div>
<div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160;        }</div>
<div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>&#160;</div>
<div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160;}</div>
<div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>&#160;</div>
<div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03452"></a><span class="lineno"><a class="code" href="class_ship.html#aa461a879207448a32ead8ba02bfc5728"> 3452</a></span>&#160;<a class="code" href="class_ship.html#aa461a879207448a32ead8ba02bfc5728">Ship::SetThrottle</a>(<span class="keywordtype">double</span> percent)</div>
<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160;{</div>
<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160;        <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> = percent;</div>
<div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160;</div>
<div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> &lt; 0)          <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> = 0;</div>
<div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> &gt; 100)   <a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> = 100;</div>
<div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160;</div>
<div class="line"><a name="l03459"></a><span class="lineno"> 3459</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ada8251a6273bf45391f263326fc71">throttle_request</a> &lt; 50)</div>
<div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>&#160;        <a class="code" href="class_ship.html#abb8577e4113905fef50ebe8e709ec869">augmenter</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;}</div>
<div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160;</div>
<div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03464"></a><span class="lineno"><a class="code" href="class_ship.html#ac75cf30a2f62be0f881d3b1caafc4ffe"> 3464</a></span>&#160;<a class="code" href="class_ship.html#ac75cf30a2f62be0f881d3b1caafc4ffe">Ship::SetAugmenter</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l03465"></a><span class="lineno"> 3465</span>&#160;{</div>
<div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a> &lt;= 50)</div>
<div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160;        enable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160;</div>
<div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a> &amp;&amp; <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>-&gt;<a class="code" href="class_drive.html#afe167ce24de538baecd64fdc9fcd2eff">MaxAugmenter</a>() &lt;= 0)</div>
<div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;        enable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;</div>
<div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160;        <a class="code" href="class_ship.html#abb8577e4113905fef50ebe8e709ec869">augmenter</a> = enable;</div>
<div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;}</div>
<div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160;</div>
<div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160;</div>
<div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03478"></a><span class="lineno"><a class="code" href="class_ship.html#a43643bcdb1a811f0567da10257001acd"> 3478</a></span>&#160;<a class="code" href="class_ship.html#a43643bcdb1a811f0567da10257001acd">Ship::SetTransition</a>(<span class="keywordtype">double</span> trans_time, <span class="keywordtype">int</span> trans_type, <span class="keyword">const</span> <a class="code" href="struct_point.html">Point</a>&amp; trans_loc)</div>
<div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160;{</div>
<div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>&#160;        <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = (float) trans_time;</div>
<div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>&#160;        <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = trans_type;</div>
<div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160;        <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a>  = trans_loc;</div>
<div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160;}</div>
<div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160;</div>
<div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03486"></a><span class="lineno"><a class="code" href="class_ship.html#aed25682a3fdb42468724fdb4d7634dff"> 3486</a></span>&#160;<a class="code" href="class_ship.html#aed25682a3fdb42468724fdb4d7634dff">Ship::DropOrbit</a>()</div>
<div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>&#160;{</div>
<div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>() &amp;&amp; <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> == <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a35ed1fd028070aab0800bf363fe26f7b">TRANSITION_NONE</a> &amp;&amp; !<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>()) {</div>
<div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160;                <a class="code" href="class_sim_region.html">SimRegion</a>* dst_rgn = <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a3b1ac256269a1ac8e049beb319a03d1e">FindNearestTerrainRegion</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160;</div>
<div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160;                <span class="keywordflow">if</span> (dst_rgn &amp;&amp;</div>
<div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>&#160;                                dst_rgn-&gt;<a class="code" href="class_sim_region.html#ad52327391a276684dbf74f67ba45ed48">GetOrbitalRegion</a>()-&gt;<a class="code" href="class_orbital.html#aa7cf93072adb036d37ccb2dbc685056a">Primary</a>() ==</div>
<div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>&#160;                                <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>()-&gt;<a class="code" href="class_sim_region.html#ad52327391a276684dbf74f67ba45ed48">GetOrbitalRegion</a>()-&gt;<a class="code" href="class_orbital.html#aa7cf93072adb036d37ccb2dbc685056a">Primary</a>()) {</div>
<div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>&#160;</div>
<div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>&#160;                        <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = 10.0f;</div>
<div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>&#160;                        <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a0cc1ecd93501112dc9df88750bec24ae">TRANSITION_DROP_ORBIT</a>;</div>
<div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>&#160;                        <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a>  = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() + <a class="code" href="class_physical.html#a2fba0c03cbd4afade7da4fc1e5bb0c0b">Heading</a>() * (-2*<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>());</div>
<div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160;</div>
<div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160;                        <a class="code" href="class_radio_traffic.html#ad03bf39e598b4739496f8cffc20d4c96">RadioTraffic::SendQuickMessage</a>(<span class="keyword">this</span>, <a class="code" href="class_radio_message.html#ad12d7f6b9297753a216da6d05eecfd25ae9884195becf45976c344b2ce783e3f7">RadioMessage::BREAK_ORBIT</a>);</div>
<div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>&#160;                        <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160;                }</div>
<div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;        }</div>
<div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>&#160;}</div>
<div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>&#160;</div>
<div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03506"></a><span class="lineno"><a class="code" href="class_ship.html#a07aa08a98f1ba26a40b9d1dc1401238f"> 3506</a></span>&#160;<a class="code" href="class_ship.html#a07aa08a98f1ba26a40b9d1dc1401238f">Ship::MakeOrbit</a>()</div>
<div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160;{</div>
<div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>() &amp;&amp; <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> == <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a35ed1fd028070aab0800bf363fe26f7b">TRANSITION_NONE</a> &amp;&amp; <a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>()) {</div>
<div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160;                <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = 5.0f;</div>
<div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160;                <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26aa207626c65a4db6146c6bd12c614f203">TRANSITION_MAKE_ORBIT</a>;</div>
<div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160;                <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a>  = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() + <a class="code" href="class_physical.html#a2fba0c03cbd4afade7da4fc1e5bb0c0b">Heading</a>() * (-2*<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>());</div>
<div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160;</div>
<div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>&#160;                <a class="code" href="class_radio_traffic.html#ad03bf39e598b4739496f8cffc20d4c96">RadioTraffic::SendQuickMessage</a>(<span class="keyword">this</span>, <a class="code" href="class_radio_message.html#ad12d7f6b9297753a216da6d05eecfd25a9062ba56a82820506eb5dbe3c602e505">RadioMessage::MAKE_ORBIT</a>);</div>
<div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160;                <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160;        }</div>
<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;}</div>
<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;</div>
<div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160;</div>
<div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l03521"></a><span class="lineno"><a class="code" href="class_ship.html#ab6ecd8b29af2133ba3a63b1aab3b65a5"> 3521</a></span>&#160;<a class="code" href="class_ship.html#ab6ecd8b29af2133ba3a63b1aab3b65a5">Ship::IsInCombat</a>()</div>
<div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160;{</div>
<div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>())</div>
<div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;</div>
<div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;        <span class="keywordtype">bool</span> combat = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160;</div>
<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;Contact&gt;</a> c_iter = <a class="code" href="class_ship.html#a020ac1c3a07790d9f88eef601b08045d">ContactList</a>();</div>
<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160;        <span class="keywordflow">while</span> (++c_iter) {</div>
<div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160;                <a class="code" href="class_contact.html">Contact</a>* c     = c_iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160;                <a class="code" href="class_ship.html">Ship</a>*    cship = c-&gt;<a class="code" href="class_contact.html#ade86a4b0e979ca7f818da017d6eb58ae">GetShip</a>();</div>
<div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160;                <span class="keywordtype">int</span>      ciff  = c-&gt;<a class="code" href="class_contact.html#a8d6b667fe8fb635b799091cad00d783f">GetIFF</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160;                <a class="code" href="struct_point.html">Point</a>    delta = c-&gt;<a class="code" href="class_contact.html#a243fef8140dca1b44de4c8f82225b067">Location</a>() - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160;                <span class="keywordtype">double</span>   dist  = delta.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160;</div>
<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160;                <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_contact.html#a3cb519932405928550df6288767cf0c0">Threat</a>(<span class="keyword">this</span>) &amp;&amp; !cship) {</div>
<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>())</div>
<div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160;                        combat = dist &lt; 120e3;</div>
<div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160;                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160;                        combat = dist &lt;  60e3;</div>
<div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160;                }</div>
<div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160;</div>
<div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cship &amp;&amp; ciff &gt; 0 &amp;&amp; ciff != <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>()) {</div>
<div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>() &amp;&amp; cship-&gt;<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>())</div>
<div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160;                        combat = dist &lt; 120e3;</div>
<div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160;                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>&#160;                        combat = dist &lt;  60e3;</div>
<div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>&#160;                }</div>
<div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>&#160;        }</div>
<div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160;</div>
<div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160;        <span class="keywordflow">return</span> combat;</div>
<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160;}</div>
<div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;</div>
<div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160;</div>
<div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l03557"></a><span class="lineno"><a class="code" href="class_ship.html#a5ea3b102f8fe9426da483e3dc3534f26"> 3557</a></span>&#160;<a class="code" href="class_ship.html#a5ea3b102f8fe9426da483e3dc3534f26">Ship::CanTimeSkip</a>()</div>
<div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160;{</div>
<div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160;        <span class="keywordtype">bool</span>         go    = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160;        <a class="code" href="class_instruction.html">Instruction</a>* navpt = <a class="code" href="class_ship.html#a738acca96fc9c03139c95f4dfb571f72">GetNextNavPoint</a>();</div>
<div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;</div>
<div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a2301f7d2310b1095ebf1b1d5883758a1">MissionClock</a>() &lt; 10000 || <a class="code" href="class_net_game.html#a0560a25c61d20efd80fd100dfff84c3d">NetGame::IsNetGame</a>())</div>
<div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160;        <span class="keywordflow">return</span> go;</div>
<div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>&#160;</div>
<div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>&#160;        <span class="keywordflow">if</span> (navpt) {</div>
<div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>&#160;                go = <span class="keyword">true</span>;</div>
<div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160;</div>
<div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>&#160;                <span class="keywordflow">if</span> (navpt-&gt;<a class="code" href="class_instruction.html#a2a3fb2adea4970c9840ed2aaf1f525f3">Region</a>() != <a class="code" href="class_sim_object.html#aa15b8215840833436f14f22919cf01f5">GetRegion</a>())</div>
<div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;                go = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160;</div>
<div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="struct_point.html">Point</a>(navpt-&gt;<a class="code" href="class_instruction.html#aaa1aa8ca619a1731afaa75b63f3f6cd0">Location</a>().<a class="code" href="struct_point.html#a2a1fb1f8b18b27891423e3362561d6b0">OtherHand</a>() - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>()).length() &lt; 30e3)</div>
<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160;                go = <span class="keyword">false</span>;</div>
<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160;        }</div>
<div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160;</div>
<div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160;        <span class="keywordflow">if</span> (go)</div>
<div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160;        go = !<a class="code" href="class_ship.html#ab6ecd8b29af2133ba3a63b1aab3b65a5">IsInCombat</a>();</div>
<div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>&#160;</div>
<div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160;        <span class="keywordflow">return</span> go;</div>
<div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160;}</div>
<div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160;</div>
<div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03582"></a><span class="lineno"><a class="code" href="class_ship.html#af60de66fe1c3e61ebed72e7e4db3a2c9"> 3582</a></span>&#160;<a class="code" href="class_ship.html#af60de66fe1c3e61ebed72e7e4db3a2c9">Ship::TimeSkip</a>()</div>
<div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160;{</div>
<div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a5ea3b102f8fe9426da483e3dc3534f26">CanTimeSkip</a>()) {</div>
<div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160;                <span class="comment">// go back to regular time before performing the skip:</span></div>
<div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160;                <a class="code" href="class_game.html#a19353ea72dacfdb5d102692210428804">Game::SetTimeCompression</a>(1);</div>
<div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160;</div>
<div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160;                <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = 7.5f;</div>
<div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160;                <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a9d34723cd4d1a3a8474ec8629f98141a">TRANSITION_TIME_SKIP</a>;</div>
<div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160;                <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a>  = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() + <a class="code" href="class_physical.html#a2fba0c03cbd4afade7da4fc1e5bb0c0b">Heading</a>() * (<a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>().<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>() * 4);</div>
<div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160;                <span class="comment">// 2500; //(8*Radius());</span></div>
<div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160;                </div>
<div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160;                <span class="keywordflow">if</span> (rand() &lt; 16000)</div>
<div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160;                <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a> += <a class="code" href="class_physical.html#acfeeb57de6a94b1e3d68a7f24e8a9cff">BeamLine</a>() * (2.5*<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>());</div>
<div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160;                <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a> += <a class="code" href="class_physical.html#acfeeb57de6a94b1e3d68a7f24e8a9cff">BeamLine</a>() * (-2 *<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>());</div>
<div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160;</div>
<div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160;                <span class="keywordflow">if</span> (rand() &lt; 8000)</div>
<div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>&#160;                <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a> += <a class="code" href="class_physical.html#aefe4361f213e12c50c1bd40a70daa5a2">LiftLine</a>() * (-1*<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>());</div>
<div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160;                <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a> += <a class="code" href="class_physical.html#aefe4361f213e12c50c1bd40a70daa5a2">LiftLine</a>() * (1.8*<a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>());</div>
<div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>&#160;</div>
<div class="line"><a name="l03603"></a><span class="lineno"> 3603</span>&#160;                <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>&#160;        }</div>
<div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160;</div>
<div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a77c21538f4c452ea5ae3d2f8af689893">GetPlayerShip</a>() == <span class="keyword">this</span>) {</div>
<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;                <a class="code" href="class_ship.html#accf7d20663ac99dca04f05209291ebeb">SetAutoNav</a>(<span class="keyword">true</span>);</div>
<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160;        }</div>
<div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160;}</div>
<div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160;</div>
<div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;</div>
<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03614"></a><span class="lineno"><a class="code" href="class_ship.html#a6a2f06d6ebbd216bc2a955cb2b7dfe62"> 3614</a></span>&#160;<a class="code" href="class_ship.html#a6a2f06d6ebbd216bc2a955cb2b7dfe62">Ship::DropCam</a>(<span class="keywordtype">double</span> time, <span class="keywordtype">double</span> range)</div>
<div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>&#160;{</div>
<div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>&#160;        <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26ad4886a35acf06ed2247995396a33e7b6">TRANSITION_DROP_CAM</a>;</div>
<div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160;</div>
<div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160;        <span class="keywordflow">if</span> (time &gt; 0)</div>
<div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>&#160;        <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = (float) time;</div>
<div class="line"><a name="l03620"></a><span class="lineno"> 3620</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160;        <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = 10.0f;</div>
<div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>&#160;</div>
<div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>&#160;        <a class="code" href="struct_point.html">Point</a>    offset          = <a class="code" href="class_physical.html#a2fba0c03cbd4afade7da4fc1e5bb0c0b">Heading</a>() * (<a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>().<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>() * 5);</div>
<div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>&#160;        <span class="keywordtype">double</span>   lateral_offset  = 2 * <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>();</div>
<div class="line"><a name="l03625"></a><span class="lineno"> 3625</span>&#160;        <span class="keywordtype">double</span>   vertical_offset = <a class="code" href="class_physical.html#a31367f0054fd23eeb6458c42bb663fc7">Radius</a>();</div>
<div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160;</div>
<div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>&#160;        <span class="keywordflow">if</span> (vertical_offset &gt; 300)</div>
<div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>&#160;        vertical_offset = 300;</div>
<div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160;</div>
<div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160;        <span class="keywordflow">if</span> (rand() &lt; 16000)</div>
<div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>&#160;        lateral_offset *= -1;</div>
<div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160;</div>
<div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>&#160;        <span class="keywordflow">if</span> (rand() &lt;  8000)</div>
<div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160;        vertical_offset *= -1;</div>
<div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160;</div>
<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;        offset += <a class="code" href="class_physical.html#acfeeb57de6a94b1e3d68a7f24e8a9cff">BeamLine</a>() * lateral_offset;</div>
<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;        offset += <a class="code" href="class_physical.html#aefe4361f213e12c50c1bd40a70daa5a2">LiftLine</a>() * vertical_offset;</div>
<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160;</div>
<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;        <span class="keywordflow">if</span> (range &gt; 0)</div>
<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160;        offset *= range;</div>
<div class="line"><a name="l03641"></a><span class="lineno"> 3641</span>&#160;</div>
<div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>&#160;        <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a>  = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() + offset;</div>
<div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160;}</div>
<div class="line"><a name="l03644"></a><span class="lineno"> 3644</span>&#160;</div>
<div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160;</div>
<div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03648"></a><span class="lineno"><a class="code" href="class_ship.html#af81d7d5565587a59cb2ba54f87b501fc"> 3648</a></span>&#160;<a class="code" href="class_ship.html#af81d7d5565587a59cb2ba54f87b501fc">Ship::DeathSpiral</a>()</div>
<div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>&#160;{</div>
<div class="line"><a name="l03650"></a><span class="lineno"> 3650</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a>)</div>
<div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160;        <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_ship_killer.html">ShipKiller</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160;</div>
<div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160;        <span class="keywordflow">while</span> (++iter)</div>
<div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160;        iter-&gt;<a class="code" href="class_system.html#af93a052a0c410b7bb8a9941e9711699b">PowerOff</a>();</div>
<div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>&#160;</div>
<div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160;        <span class="comment">// transfer arcade velocity to newtonian velocity:</span></div>
<div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> &gt;= 2) {</div>
<div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160;                <a class="code" href="class_physical.html#a02b1afe5e027120d1e8dc445ee80143e">velocity</a> += <a class="code" href="class_physical.html#aed93819206c4ca747edf57ba36e930e2">arcade_velocity</a>;</div>
<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160;        }</div>
<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160;</div>
<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() &lt; 100 &amp;&amp; !<a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">IsGroundUnit</a>()) {</div>
<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160;                <a class="code" href="class_radio_traffic.html#ad03bf39e598b4739496f8cffc20d4c96">RadioTraffic::SendQuickMessage</a>(<span class="keyword">this</span>, <a class="code" href="class_radio_message.html#ad12d7f6b9297753a216da6d05eecfd25a386360555ea00d3432ebfb94ccfd0efb">RadioMessage::DISTRESS</a>);</div>
<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160;        }</div>
<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160;</div>
<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160;        <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a81e2299a9e5fd1919868c914be19a112">TRANSITION_DEATH_SPIRAL</a>;</div>
<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160;</div>
<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;        <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a>-&gt;<a class="code" href="class_ship_killer.html#a415eb1d066d29117f8987cdab2ff7e30">BeginDeathSpiral</a>();</div>
<div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160;</div>
<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;        <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a>-&gt;<a class="code" href="class_ship_killer.html#a61dc4516a3ac1fe589183efb4e00bf68">TransitionTime</a>();</div>
<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160;        <a class="code" href="class_ship.html#a7879d9a8c4e20b3610ab50d3d86faef6">transition_loc</a>  = <a class="code" href="class_ship.html#afcfc99e1759ab18a46bc9ab4254f4916">killer</a>-&gt;<a class="code" href="class_ship_killer.html#a212471fdf04211fb4ed6971875c6bfaf">TransitionLoc</a>();</div>
<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160;}</div>
<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160;</div>
<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;</div>
<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03677"></a><span class="lineno"><a class="code" href="class_ship.html#a2793733504fe78bdeccf65da9c5c7ad4"> 3677</a></span>&#160;<a class="code" href="class_ship.html#a2793733504fe78bdeccf65da9c5c7ad4">Ship::CompleteTransition</a>()</div>
<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160;{</div>
<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160;        <span class="keywordtype">int</span> old_type = <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a>;</div>
<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;        <a class="code" href="class_ship.html#a9392663769c5950c328b404095979877">transition_time</a> = 0.0f;</div>
<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;        <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a35ed1fd028070aab0800bf363fe26f7b">TRANSITION_NONE</a>;</div>
<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;</div>
<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;        <span class="keywordflow">switch</span> (old_type) {</div>
<div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a35ed1fd028070aab0800bf363fe26f7b">TRANSITION_NONE</a>:</div>
<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26ad4886a35acf06ed2247995396a33e7b6">TRANSITION_DROP_CAM</a>:</div>
<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;        <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;</div>
<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a0cc1ecd93501112dc9df88750bec24ae">TRANSITION_DROP_ORBIT</a>: {</div>
<div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;                        <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;                        <a class="code" href="class_sim_region.html">SimRegion</a>*  dst_rgn   = <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a3b1ac256269a1ac8e049beb319a03d1e">FindNearestTerrainRegion</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;                        <a class="code" href="struct_point.html">Point</a>       dst_loc   = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>().<a class="code" href="struct_point.html#a2a1fb1f8b18b27891423e3362561d6b0">OtherHand</a>() * 0.20;</div>
<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;                        dst_loc.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a> += 6000 * <a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a">GetElementIndex</a>();</div>
<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;                        dst_loc.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a> = <a class="code" href="_terrain_region_8h.html#af7f21e37cf10a1d6af6dceee44ed27a3">TERRAIN_ALTITUDE_LIMIT</a> * 0.95;</div>
<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;                        dst_loc   += <a class="code" href="_random_8cpp.html#ae94fc6ef5633f5315e24a5742ae2316b">RandomDirection</a>() * 2e3;</div>
<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;</div>
<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a99a42867a5ad68ed2d717d7e484fc475">RequestHyperJump</a>(<span class="keyword">this</span>, dst_rgn, dst_loc, <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a0cc1ecd93501112dc9df88750bec24ae">TRANSITION_DROP_ORBIT</a>);</div>
<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;</div>
<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;                        <a class="code" href="class_ship_stats.html">ShipStats</a>* stats = <a class="code" href="class_ship_stats.html#a6295f4bd2b5c2037a776f4dc62a8947d">ShipStats::Find</a>(<a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>());</div>
<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160;                        stats-&gt;<a class="code" href="class_ship_stats.html#a1967b08c464784f1606c502031d20448">AddEvent</a>(<a class="code" href="class_sim_event.html#a98f1f7128b77df151a908e03f68bc2c2ae4c0e6ee9952e10321ce143b5bed1584">SimEvent::BREAK_ORBIT</a>, dst_rgn-&gt;<a class="code" href="class_sim_region.html#a4fb402a63782d520a25954ab9235b1bc">Name</a>());</div>
<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;                }</div>
<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160;</div>
<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26aa207626c65a4db6146c6bd12c614f203">TRANSITION_MAKE_ORBIT</a>: {</div>
<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;                        <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;                        <a class="code" href="class_sim_region.html">SimRegion</a>*  dst_rgn = <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a242c15d2be829cebe0329628573b1427">FindNearestSpaceRegion</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160;                        <span class="keywordtype">double</span>      dist    = 200.0e3 + 10.0e3 * <a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a">GetElementIndex</a>();</div>
<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;                        <a class="code" href="struct_point.html">Point</a>       esc_vec = dst_rgn-&gt;<a class="code" href="class_sim_region.html#ad52327391a276684dbf74f67ba45ed48">GetOrbitalRegion</a>()-&gt;<a class="code" href="class_orbital.html#ae3453af73dc7a8a7cc1b009f09fca175">Location</a>() -</div>
<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160;                        dst_rgn-&gt;<a class="code" href="class_sim_region.html#ad52327391a276684dbf74f67ba45ed48">GetOrbitalRegion</a>()-&gt;<a class="code" href="class_orbital.html#aa7cf93072adb036d37ccb2dbc685056a">Primary</a>()-&gt;<a class="code" href="class_orbital.html#ae3453af73dc7a8a7cc1b009f09fca175">Location</a>();</div>
<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160;</div>
<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>&#160;                        esc_vec.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a> = -100 * <a class="code" href="class_ship.html#a319b9912d54530ed11d5f75e1a13291a">GetElementIndex</a>();</div>
<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160;                        esc_vec.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160;                        esc_vec *= -dist;</div>
<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;                        esc_vec += <a class="code" href="_random_8cpp.html#ae94fc6ef5633f5315e24a5742ae2316b">RandomDirection</a>() * 2e3;</div>
<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;</div>
<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a99a42867a5ad68ed2d717d7e484fc475">RequestHyperJump</a>(<span class="keyword">this</span>, dst_rgn, esc_vec, <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26aa207626c65a4db6146c6bd12c614f203">TRANSITION_MAKE_ORBIT</a>);</div>
<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>&#160;</div>
<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;                        <a class="code" href="class_ship_stats.html">ShipStats</a>* stats = <a class="code" href="class_ship_stats.html#a6295f4bd2b5c2037a776f4dc62a8947d">ShipStats::Find</a>(<a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>());</div>
<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;                        stats-&gt;<a class="code" href="class_ship_stats.html#a1967b08c464784f1606c502031d20448">AddEvent</a>(<a class="code" href="class_sim_event.html#a98f1f7128b77df151a908e03f68bc2c2a910391192c08c311fe962a645177cdaa">SimEvent::MAKE_ORBIT</a>, dst_rgn-&gt;<a class="code" href="class_sim_region.html#a4fb402a63782d520a25954ab9235b1bc">Name</a>());</div>
<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;                }</div>
<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160;</div>
<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a9d34723cd4d1a3a8474ec8629f98141a">TRANSITION_TIME_SKIP</a>: {</div>
<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160;                        <a class="code" href="class_instruction.html">Instruction</a>* navpt = <a class="code" href="class_ship.html#a738acca96fc9c03139c95f4dfb571f72">GetNextNavPoint</a>();</div>
<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160;</div>
<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160;                        <span class="keywordflow">if</span> (navpt) {</div>
<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;                                <a class="code" href="struct_point.html">Point</a>    delta = navpt-&gt;<a class="code" href="class_instruction.html#aaa1aa8ca619a1731afaa75b63f3f6cd0">Location</a>().<a class="code" href="struct_point.html#a2a1fb1f8b18b27891423e3362561d6b0">OtherHand</a>() - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;                                <a class="code" href="struct_point.html">Point</a>    unit  = delta; unit.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;                                <a class="code" href="struct_point.html">Point</a>    trans = delta + unit * -20e3;</div>
<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160;                                <span class="keywordtype">double</span>   dist  = trans.<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;                                <span class="keywordtype">double</span>   speed = navpt-&gt;<a class="code" href="class_instruction.html#abfc96ebeb1f040019a14c10dc809856c">Speed</a>();</div>
<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;</div>
<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;                                <span class="keywordflow">if</span> (speed &lt; 50) speed = 500;</div>
<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;</div>
<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;                                <span class="keywordtype">double</span>   etr   = dist / speed;</div>
<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;</div>
<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;                                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a15a3624d17317113f3df44c20fd521fc">ResolveTimeSkip</a>(etr);</div>
<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160;                        }</div>
<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160;                }</div>
<div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;</div>
<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26a81e2299a9e5fd1919868c914be19a112">TRANSITION_DEATH_SPIRAL</a>:</div>
<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;                <a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">SetControls</a>(0);</div>
<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160;                <a class="code" href="class_ship.html#ab3c61d3cbe2bd3d0b570bab80bacd558">transition_type</a> = <a class="code" href="class_ship.html#a631930c4d9f7d63c71b74d575f72bd26ac309c00336146b9aeb9571de15f81728">TRANSITION_DEAD</a>;</div>
<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160;        }</div>
<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160;</div>
<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160;}</div>
<div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160;</div>
<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l03751"></a><span class="lineno"><a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c"> 3751</a></span>&#160;<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">Ship::IsAirborne</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>)</div>
<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>-&gt;<a class="code" href="class_sim_region.html#a66268e9d25e7c8b2c189c50b5d1772ee">Type</a>() == <a class="code" href="class_sim_region.html#aefc2bfdca9e1982aad4450de4693d9c4a8a13dc26cc70eaf1810f1ab3e36ed298">SimRegion::AIR_SPACE</a>;</div>
<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;</div>
<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160;}</div>
<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;</div>
<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l03760"></a><span class="lineno"><a class="code" href="class_ship.html#a0d2b7974686fd50c057aa8503f8f7e77"> 3760</a></span>&#160;<a class="code" href="class_ship.html#a0d2b7974686fd50c057aa8503f8f7e77">Ship::CompassHeading</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160;        <a class="code" href="struct_point.html">Point</a> heading = <a class="code" href="class_physical.html#a2fba0c03cbd4afade7da4fc1e5bb0c0b">Heading</a>();</div>
<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160;        <span class="keywordtype">double</span> compass_heading = atan2(fabs(heading.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a>), heading.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a>);</div>
<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;</div>
<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;        <span class="keywordflow">if</span> (heading.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a> &lt; 0)</div>
<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;        compass_heading *= -1;</div>
<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160;</div>
<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160;        <span class="keywordtype">double</span> result = compass_heading + <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>;</div>
<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160;</div>
<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;        <span class="keywordflow">if</span> (result &gt;= 2*PI)</div>
<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;        result -= 2*<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>;</div>
<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160;</div>
<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160;        <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160;}</div>
<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160;</div>
<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l03777"></a><span class="lineno"><a class="code" href="class_ship.html#affe80491413130fce4c38fed65575eb1"> 3777</a></span>&#160;<a class="code" href="class_ship.html#affe80491413130fce4c38fed65575eb1">Ship::CompassPitch</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;        <a class="code" href="struct_point.html">Point</a> heading = <a class="code" href="class_physical.html#a2fba0c03cbd4afade7da4fc1e5bb0c0b">Heading</a>();</div>
<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;        <span class="keywordflow">return</span> asin(heading.<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a>);</div>
<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160;}</div>
<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160;</div>
<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l03784"></a><span class="lineno"><a class="code" href="class_ship.html#ab0f4fd60d5a9b595869a34626e4f6d27"> 3784</a></span>&#160;<a class="code" href="class_ship.html#ab0f4fd60d5a9b595869a34626e4f6d27">Ship::AltitudeMSL</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>().<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a>;</div>
<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160;}</div>
<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160;</div>
<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l03790"></a><span class="lineno"><a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c"> 3790</a></span>&#160;<a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">Ship::AltitudeAGL</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ab7364e9c7c89db7f3b37b71f80614548">altitude_agl</a> &lt; -1000) {</div>
<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160;                <a class="code" href="class_ship.html">Ship</a>*    pThis   = (<a class="code" href="class_ship.html">Ship</a>*) <span class="keyword">this</span>; <span class="comment">// cast-away const</span></div>
<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160;                <a class="code" href="struct_point.html">Point</a>    loc     = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160;</div>
<div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>&#160;                <a class="code" href="class_terrain.html">Terrain</a>* terrain = <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>-&gt;<a class="code" href="class_sim_region.html#a7fa8f1f9c7a3bd663a120c02752fec61">GetTerrain</a>();</div>
<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160;</div>
<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160;                <span class="keywordflow">if</span> (terrain)</div>
<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160;                pThis-&gt;<a class="code" href="class_ship.html#ab7364e9c7c89db7f3b37b71f80614548">altitude_agl</a> = (float) (loc.<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a> - terrain-&gt;<a class="code" href="class_terrain.html#a23567e7f11df8e0885e4729fd7984606">Height</a>(loc.<a class="code" href="struct_point.html#ab99c56589bc8ad5fa5071387110a5bc7">x</a>, loc.<a class="code" href="struct_point.html#a05ba3b1dfcb19430582ae953cbbfbded">z</a>));</div>
<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;</div>
<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;                pThis-&gt;<a class="code" href="class_ship.html#ab7364e9c7c89db7f3b37b71f80614548">altitude_agl</a> = (float) loc.<a class="code" href="struct_point.html#afa38be143ae800e6ad69ce8ed4df62d8">y</a>;</div>
<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;</div>
<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160;                if (!_finite(<a class="code" href="class_ship.html#ab7364e9c7c89db7f3b37b71f80614548">altitude_agl</a>)) {</div>
<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160;                        pThis-&gt;<a class="code" href="class_ship.html#ab7364e9c7c89db7f3b37b71f80614548">altitude_agl</a> = 0.0f;</div>
<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;                }</div>
<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;        }</div>
<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;</div>
<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ab7364e9c7c89db7f3b37b71f80614548">altitude_agl</a>;</div>
<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160;}</div>
<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;</div>
<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l03813"></a><span class="lineno"><a class="code" href="class_ship.html#a487e8c8051284e8a94e804c976f63a9c"> 3813</a></span>&#160;<a class="code" href="class_ship.html#a487e8c8051284e8a94e804c976f63a9c">Ship::GForce</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#afb906a30f8a81dfa01bc72dfc6a018fb">g_force</a>;</div>
<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;}</div>
<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;</div>
<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;</div>
<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;<a class="code" href="class_weapon_group.html">WeaponGroup</a>*</div>
<div class="line"><a name="l03821"></a><span class="lineno"><a class="code" href="class_ship.html#a72df13368a3873d550d234440125d963"> 3821</a></span>&#160;<a class="code" href="class_ship.html#a72df13368a3873d550d234440125d963">Ship::FindWeaponGroup</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name)</div>
<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;{</div>
<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;        <a class="code" href="class_weapon_group.html">WeaponGroup</a>* group = 0;</div>
<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160;</div>
<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;WeaponGroup&gt;</a> iter = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>;</div>
<div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160;        <span class="keywordflow">while</span> (!group &amp;&amp; ++iter)</div>
<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160;        <span class="keywordflow">if</span> (!_stricmp(iter-&gt;<a class="code" href="class_weapon_group.html#ac68d7397c764500656906f7c2e58c3e4">Name</a>(), <a class="code" href="class_physical.html#a8494a16d51ebf60bba3961b2a9101b8d">name</a>))</div>
<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160;        group = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160;</div>
<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;        <span class="keywordflow">if</span> (!group) {</div>
<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160;                group = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_weapon_group.html">WeaponGroup</a>(name);</div>
<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160;                <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(group);</div>
<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160;        }</div>
<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160;</div>
<div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>&#160;        <span class="keywordflow">return</span> group;</div>
<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160;}</div>
<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160;</div>
<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03839"></a><span class="lineno"><a class="code" href="class_ship.html#ae1e1d439f9425c38f089d8f518ab49bb"> 3839</a></span>&#160;<a class="code" href="class_ship.html#ae1e1d439f9425c38f089d8f518ab49bb">Ship::SelectWeapon</a>(<span class="keywordtype">int</span> n, <span class="keywordtype">int</span> w)</div>
<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160;{</div>
<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160;        <span class="keywordflow">if</span> (n &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160;        <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[n]-&gt;<a class="code" href="class_ship.html#ae1e1d439f9425c38f089d8f518ab49bb">SelectWeapon</a>(w);</div>
<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;}</div>
<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;</div>
<div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>&#160;</div>
<div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03848"></a><span class="lineno"><a class="code" href="class_ship.html#a27d50238916e43c12a23eaba756529ff"> 3848</a></span>&#160;<a class="code" href="class_ship.html#a27d50238916e43c12a23eaba756529ff">Ship::CyclePrimary</a>()</div>
<div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160;{</div>
<div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a071d0d7ff41df9529d55e74364d7c819">isEmpty</a>())</div>
<div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>&#160;</div>
<div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>() &amp;&amp; <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a> &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>()) {</div>
<div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>&#160;                <a class="code" href="class_weapon_group.html">WeaponGroup</a>* p = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>];</div>
<div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160;                <a class="code" href="class_weapon.html">Weapon</a>*      w = p-&gt;<a class="code" href="class_weapon_group.html#ae00ef0e63d6f825fcc3ad8c3bcd702f6">GetSelected</a>();</div>
<div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>&#160;</div>
<div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>&#160;                <span class="keywordflow">if</span> (w &amp;&amp; w-&gt;<a class="code" href="class_weapon.html#a47068c3b0dd83e54351955385fdf222e">GetTurret</a>()) {</div>
<div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160;                        p-&gt;<a class="code" href="class_weapon_group.html#a082203ad39b5e85cda3cc9d181ade890">SetFiringOrders</a>(<a class="code" href="class_weapon.html#a939a47bff4d001de54860169efc4f554af58cf56b3591a6600a7c1643e0581c95">Weapon::POINT_DEFENSE</a>);</div>
<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;                }</div>
<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;        }</div>
<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160;</div>
<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;        <span class="keywordtype">int</span> n = <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a> + 1;</div>
<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;        <span class="keywordflow">while</span> (n != <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>) {</div>
<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;                <span class="keywordflow">if</span> (n &gt;= <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;                n = 0;</div>
<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160;</div>
<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[n]-&gt;IsPrimary()) {</div>
<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160;                        <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[n]-&gt;SetFiringOrders(<a class="code" href="class_weapon.html#a939a47bff4d001de54860169efc4f554a8be1579203caf713ed1285a8bbb4a908">Weapon::MANUAL</a>);</div>
<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160;                        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160;                }</div>
<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160;</div>
<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160;                n++;</div>
<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160;        }</div>
<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;</div>
<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160;        <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a> = n;</div>
<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160;}</div>
<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160;</div>
<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span>&#160;</div>
<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03881"></a><span class="lineno"><a class="code" href="class_ship.html#add658dcb66b1000d73a25f55a1b0dcc4"> 3881</a></span>&#160;<a class="code" href="class_ship.html#add658dcb66b1000d73a25f55a1b0dcc4">Ship::CycleSecondary</a>()</div>
<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;{</div>
<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a071d0d7ff41df9529d55e74364d7c819">isEmpty</a>())</div>
<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160;</div>
<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160;        <span class="keywordtype">int</span> n = <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> + 1;</div>
<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160;        <span class="keywordflow">while</span> (n != <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>) {</div>
<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160;                <span class="keywordflow">if</span> (n &gt;= <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160;                n = 0;</div>
<div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160;</div>
<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[n]-&gt;IsMissile())</div>
<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160;</div>
<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;                n++;</div>
<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;        }</div>
<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160;</div>
<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160;        <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a> = n;</div>
<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160;</div>
<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160;        <span class="comment">// automatically switch sensors to appropriate mode:</span></div>
<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>()) {</div>
<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160;                <a class="code" href="class_weapon.html">Weapon</a>* missile = <a class="code" href="class_ship.html#a08b7da74631bf6548c5647346138fdf0">GetSecondary</a>();</div>
<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;                <span class="keywordflow">if</span> (missile &amp;&amp; missile-&gt;<a class="code" href="class_weapon.html#a4ce038dc32ca1925b1a542da3d4eab99">CanTarget</a>(<a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824acf235b7d63a43eaaa74bf04aafd7e606">Ship::GROUND_UNITS</a>))</div>
<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;                <a class="code" href="class_ship.html#add44730058f4b2da0feeba96a9e71512">SetSensorMode</a>(<a class="code" href="class_sensor.html#a67373e45d6929876af10812b6c736016a06fe9ce26ecfe658c9b200c36fefc108">Sensor::GM</a>);</div>
<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a> &amp;&amp; <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#a23742fbd06ccf6c8d6b6fb26f79e7fa1">GetMode</a>() == <a class="code" href="class_sensor.html#a67373e45d6929876af10812b6c736016a06fe9ce26ecfe658c9b200c36fefc108">Sensor::GM</a>)</div>
<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;                <a class="code" href="class_ship.html#add44730058f4b2da0feeba96a9e71512">SetSensorMode</a>(<a class="code" href="class_sensor.html#a67373e45d6929876af10812b6c736016a797021bb9b26a1f88c808b0ada0bd3b9">Sensor::STD</a>);</div>
<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;        }</div>
<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;}</div>
<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;</div>
<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l03910"></a><span class="lineno"><a class="code" href="class_ship.html#aee3e5e3508ce80ab5504f1f5e32d2985"> 3910</a></span>&#160;<a class="code" href="class_ship.html#aee3e5e3508ce80ab5504f1f5e32d2985">Ship::GetMissileEta</a>(<span class="keywordtype">int</span> index)<span class="keyword"> const</span></div>
<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;        <span class="keywordflow">if</span> (index &gt;= 0 &amp;&amp; index &lt; 4)</div>
<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#aeb01072c1db5ca6667e908b6ad05ad72">missile_eta</a>[index];</div>
<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;</div>
<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160;}</div>
<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160;</div>
<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03919"></a><span class="lineno"><a class="code" href="class_ship.html#a17d322d9686975b62657b31f931dbb4c"> 3919</a></span>&#160;<a class="code" href="class_ship.html#a17d322d9686975b62657b31f931dbb4c">Ship::SetMissileEta</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> eta)</div>
<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160;{</div>
<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;        <span class="keywordtype">int</span> index = -1;</div>
<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;</div>
<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160;        <span class="comment">// are we tracking this missile&#39;s eta?</span></div>
<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++)</div>
<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;        <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <a class="code" href="class_ship.html#adc4e0506393a0047f36a4f18d5eb3050">missile_id</a>[i])</div>
<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160;        index = i;</div>
<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160;</div>
<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160;        <span class="comment">// if not, can we find an open slot to track it in?</span></div>
<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160;        <span class="keywordflow">if</span> (index &lt; 0) {</div>
<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4 &amp;&amp; index &lt; 0; i++) {</div>
<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aeb01072c1db5ca6667e908b6ad05ad72">missile_eta</a>[i] == 0) {</div>
<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160;                                index = i;</div>
<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160;                                <a class="code" href="class_ship.html#adc4e0506393a0047f36a4f18d5eb3050">missile_id</a>[i] = <a class="code" href="class_physical.html#ada97e68f8c9359d9c934f0e45918c774">id</a>;</div>
<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160;                        }</div>
<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160;                }</div>
<div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>&#160;        }</div>
<div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>&#160;</div>
<div class="line"><a name="l03938"></a><span class="lineno"> 3938</span>&#160;        <span class="comment">// track the eta:</span></div>
<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span>&#160;        <span class="keywordflow">if</span> (index &gt;= 0 &amp;&amp; index &lt; 4) {</div>
<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span>&#160;                <span class="keywordflow">if</span> (eta &gt; 3599)</div>
<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>&#160;                eta = 3599;</div>
<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>&#160;</div>
<div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>&#160;                <a class="code" href="class_ship.html#aeb01072c1db5ca6667e908b6ad05ad72">missile_eta</a>[index] = (BYTE) eta;</div>
<div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>&#160;        }</div>
<div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>&#160;}</div>
<div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>&#160;</div>
<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>&#160;</div>
<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l03950"></a><span class="lineno"><a class="code" href="class_ship.html#a4bd60ac2ccc8039b0177497eceb5095c"> 3950</a></span>&#160;<a class="code" href="class_ship.html#a4bd60ac2ccc8039b0177497eceb5095c">Ship::DoEMCON</a>()</div>
<div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>&#160;{</div>
<div class="line"><a name="l03952"></a><span class="lineno"> 3952</span>&#160;        <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l03953"></a><span class="lineno"> 3953</span>&#160;        <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l03954"></a><span class="lineno"> 3954</span>&#160;                <a class="code" href="class_system.html">System</a>* s = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l03955"></a><span class="lineno"> 3955</span>&#160;                s-&gt;<a class="code" href="class_system.html#a22ed3c97d635aff13054891358a2a9b9">DoEMCON</a>(<a class="code" href="class_ship.html#aa8876b9838fca2ac2a165888fdbcebc1">emcon</a>);</div>
<div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>&#160;        }</div>
<div class="line"><a name="l03957"></a><span class="lineno"> 3957</span>&#160;</div>
<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160;        <a class="code" href="class_ship.html#a9a55a6dede9ee1788d3cf9ecf643e42f">old_emcon</a> = <a class="code" href="class_ship.html#aa8876b9838fca2ac2a165888fdbcebc1">emcon</a>;</div>
<div class="line"><a name="l03959"></a><span class="lineno"> 3959</span>&#160;}</div>
<div class="line"><a name="l03960"></a><span class="lineno"> 3960</span>&#160;</div>
<div class="line"><a name="l03961"></a><span class="lineno"> 3961</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>&#160;</div>
<div class="line"><a name="l03963"></a><span class="lineno"> 3963</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l03964"></a><span class="lineno"><a class="code" href="class_ship.html#a757b840b99df67b01867c1905c7691e4"> 3964</a></span>&#160;<a class="code" href="class_physical.html#ae2f2fa70cb366f708fe10065186e3ad0">Ship::Thrust</a>(<span class="keywordtype">double</span> seconds)<span class="keyword"> const</span></div>
<div class="line"><a name="l03965"></a><span class="lineno"> 3965</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>&#160;        <span class="keywordtype">double</span> total_thrust = 0;</div>
<div class="line"><a name="l03967"></a><span class="lineno"> 3967</span>&#160;</div>
<div class="line"><a name="l03968"></a><span class="lineno"> 3968</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>) {</div>
<div class="line"><a name="l03969"></a><span class="lineno"> 3969</span>&#160;                <span class="comment">// velocity limiter:</span></div>
<div class="line"><a name="l03970"></a><span class="lineno"> 3970</span>&#160;                <a class="code" href="struct_point.html">Point</a>  H             = <a class="code" href="class_physical.html#a2fba0c03cbd4afade7da4fc1e5bb0c0b">Heading</a>();</div>
<div class="line"><a name="l03971"></a><span class="lineno"> 3971</span>&#160;                <a class="code" href="struct_point.html">Point</a>  V             = <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>();</div>
<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;                <span class="keywordtype">double</span> vmag          = V.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>();</div>
<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;                <span class="keywordtype">double</span> eff_throttle  = <a class="code" href="class_ship.html#ae8511e35e6a6913c7af0fc23456536e3">throttle</a>;</div>
<div class="line"><a name="l03974"></a><span class="lineno"> 3974</span>&#160;                <span class="keywordtype">double</span> thrust_factor = 1;</div>
<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>&#160;                <span class="keywordtype">double</span> vfwd          = H * V;</div>
<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>&#160;                <span class="keywordtype">bool</span>   aug_on        = <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>-&gt;<a class="code" href="class_drive.html#afeccacd5446055f33ac7b58f55a49613">IsAugmenterOn</a>();</div>
<div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>&#160;</div>
<div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>&#160;                <span class="keywordflow">if</span> (vmag &gt; <a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a> &amp;&amp; vfwd &gt; 0) {</div>
<div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>&#160;                        <span class="keywordtype">double</span> vmax = <a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>;</div>
<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160;                        <span class="keywordflow">if</span> (aug_on)</div>
<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160;                        vmax *= 1.5;</div>
<div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160;</div>
<div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>&#160;                        vfwd = 0.5 * vfwd + 0.5;</div>
<div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160;</div>
<div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>&#160;                        <span class="comment">// reduce drive efficiency at high fwd speed:</span></div>
<div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>&#160;                        thrust_factor = (vfwd * pow(vmax,3) / pow(vmag,3)) + (1-vfwd);</div>
<div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;                }</div>
<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160;</div>
<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>)</div>
<div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160;                eff_throttle = <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_flight_comp.html#ac19551c52a2a37360d7a09c5dcf25bcd">Throttle</a>();</div>
<div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;</div>
<div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160;                <span class="comment">// square-law throttle curve to increase sensitivity</span></div>
<div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>&#160;                <span class="comment">// at lower throttle settings:</span></div>
<div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> &gt; 1) {</div>
<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160;                        eff_throttle /= 100;</div>
<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;                        eff_throttle *= eff_throttle;</div>
<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160;                        eff_throttle *= 100;</div>
<div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>&#160;                }</div>
<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160;</div>
<div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>&#160;                <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>-&gt;<a class="code" href="class_drive.html#a7048d0ab88750a6d3be5a4ed24496137">SetThrottle</a>(eff_throttle, <a class="code" href="class_ship.html#abb8577e4113905fef50ebe8e709ec869">augmenter</a>);</div>
<div class="line"><a name="l04001"></a><span class="lineno"> 4001</span>&#160;                total_thrust += thrust_factor * <a class="code" href="class_ship.html#afa5a28cc6b7230cdffeb719f8d16a566">main_drive</a>-&gt;<a class="code" href="class_drive.html#ab41c598f0856e44d4b789a940db3dac3">Thrust</a>(seconds);</div>
<div class="line"><a name="l04002"></a><span class="lineno"> 4002</span>&#160;</div>
<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>&#160;                <span class="keywordflow">if</span> (aug_on &amp;&amp; <a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a> &lt; 1.5)</div>
<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>&#160;                ((<a class="code" href="class_ship.html">Ship</a>*) <span class="keyword">this</span>)-&gt;shake = 1.5f;</div>
<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>&#160;        }</div>
<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160;</div>
<div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160;        <span class="keywordflow">return</span> total_thrust;</div>
<div class="line"><a name="l04008"></a><span class="lineno"> 4008</span>&#160;}</div>
<div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>&#160;</div>
<div class="line"><a name="l04010"></a><span class="lineno"> 4010</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160;</div>
<div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04013"></a><span class="lineno"><a class="code" href="class_ship.html#ac024dedfc6f936a662cbe726c014a712"> 4013</a></span>&#160;<a class="code" href="class_ship.html#ac024dedfc6f936a662cbe726c014a712">Ship::CycleFLCSMode</a>()</div>
<div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160;{</div>
<div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>&#160;        <span class="keywordflow">switch</span> (<a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a>) {</div>
<div class="line"><a name="l04016"></a><span class="lineno"> 4016</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a4969eaa55d98639806c5ff53f37adeed">FLCS_MANUAL</a>: <a class="code" href="class_ship.html#a713ab7b9451bea3db67837872a19d427">SetFLCSMode</a>(<a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a30c98402f823a6b8258ab87064514843">FLCS_HELM</a>);    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a42b34eafdd1adcf6e0f130ebe192519d">FLCS_AUTO</a>:   <a class="code" href="class_ship.html#a713ab7b9451bea3db67837872a19d427">SetFLCSMode</a>(<a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a4969eaa55d98639806c5ff53f37adeed">FLCS_MANUAL</a>);  <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a30c98402f823a6b8258ab87064514843">FLCS_HELM</a>:   <a class="code" href="class_ship.html#a713ab7b9451bea3db67837872a19d427">SetFLCSMode</a>(<a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a42b34eafdd1adcf6e0f130ebe192519d">FLCS_AUTO</a>);    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160;</div>
<div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160;        <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>())</div>
<div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160;                <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = (BYTE) <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a30c98402f823a6b8258ab87064514843">FLCS_HELM</a>;</div>
<div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>&#160;                <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = (BYTE) <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a42b34eafdd1adcf6e0f130ebe192519d">FLCS_AUTO</a>;</div>
<div class="line"><a name="l04025"></a><span class="lineno"> 4025</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160;        }</div>
<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160;</div>
<div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160;        <span class="comment">// reset helm heading to compass heading when switching</span></div>
<div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160;        <span class="comment">// back to helm mode from manual mode:</span></div>
<div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>&#160;</div>
<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> == <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a30c98402f823a6b8258ab87064514843">FLCS_HELM</a>) {</div>
<div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>()) {</div>
<div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160;                        <a class="code" href="class_ship.html#a895e09fc4d671544fe7d963d4b62ec97">SetHelmHeading</a>(<a class="code" href="class_ship.html#a0d2b7974686fd50c057aa8503f8f7e77">CompassHeading</a>());</div>
<div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160;                        <a class="code" href="class_ship.html#afe05f1955ba1829116376d653ba3455e">SetHelmPitch</a>(<a class="code" href="class_ship.html#affe80491413130fce4c38fed65575eb1">CompassPitch</a>());</div>
<div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160;                }</div>
<div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160;                <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160;                        <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = (BYTE) <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a42b34eafdd1adcf6e0f130ebe192519d">FLCS_AUTO</a>;</div>
<div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160;                }</div>
<div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160;        }</div>
<div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160;}</div>
<div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160;</div>
<div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04043"></a><span class="lineno"><a class="code" href="class_ship.html#a713ab7b9451bea3db67837872a19d427"> 4043</a></span>&#160;<a class="code" href="class_ship.html#a713ab7b9451bea3db67837872a19d427">Ship::SetFLCSMode</a>(<span class="keywordtype">int</span> mode)</div>
<div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160;{</div>
<div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160;        <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = (BYTE) mode;</div>
<div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160;</div>
<div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>())</div>
<div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160;        <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a> = (BYTE) <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a4969eaa55d98639806c5ff53f37adeed">FLCS_MANUAL</a>;</div>
<div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;</div>
<div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> &amp;&amp; <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() &lt; <a class="code" href="class_steer_a_i.html#ab5f1818dcf2918bd33744c178eae1ba2aa3f292fcd0565714850051a709863086">SteerAI::SEEKER</a>) {</div>
<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;                <span class="keywordflow">switch</span> (<a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a>) {</div>
<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a4969eaa55d98639806c5ff53f37adeed">FLCS_MANUAL</a>:    <a class="code" href="class_ship.html#a51b71ffbd9d558e6e95b37552ed4dc9e">director_info</a> = <a class="code" href="class_game.html#a80f0de6fe1883b6b0e4c67b3e16afb2f">Game::GetText</a>(<span class="stringliteral">&quot;flcs.manual&quot;</span>); <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a42b34eafdd1adcf6e0f130ebe192519d">FLCS_AUTO</a>:      <a class="code" href="class_ship.html#a51b71ffbd9d558e6e95b37552ed4dc9e">director_info</a> = <a class="code" href="class_game.html#a80f0de6fe1883b6b0e4c67b3e16afb2f">Game::GetText</a>(<span class="stringliteral">&quot;flcs.auto&quot;</span>);   <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a282a6477e9f0f8abdd0ee7e05ff94db1a30c98402f823a6b8258ab87064514843">FLCS_HELM</a>:      <a class="code" href="class_ship.html#a51b71ffbd9d558e6e95b37552ed4dc9e">director_info</a> = <a class="code" href="class_game.html#a80f0de6fe1883b6b0e4c67b3e16afb2f">Game::GetText</a>(<span class="stringliteral">&quot;flcs.helm&quot;</span>);   <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160;                <span class="keywordflow">default</span>:             <a class="code" href="class_ship.html#a51b71ffbd9d558e6e95b37552ed4dc9e">director_info</a> = <a class="code" href="class_game.html#a80f0de6fe1883b6b0e4c67b3e16afb2f">Game::GetText</a>(<span class="stringliteral">&quot;flcs.fault&quot;</span>);  <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>&#160;                }</div>
<div class="line"><a name="l04057"></a><span class="lineno"> 4057</span>&#160;</div>
<div class="line"><a name="l04058"></a><span class="lineno"> 4058</span>&#160;                <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a> || !<a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_system.html#afb081d97d5976241aa9a231aa193cb6c">IsPowerOn</a>())</div>
<div class="line"><a name="l04059"></a><span class="lineno"> 4059</span>&#160;                <a class="code" href="class_ship.html#a51b71ffbd9d558e6e95b37552ed4dc9e">director_info</a> = <a class="code" href="class_game.html#a80f0de6fe1883b6b0e4c67b3e16afb2f">Game::GetText</a>(<span class="stringliteral">&quot;flcs.offline&quot;</span>);</div>
<div class="line"><a name="l04060"></a><span class="lineno"> 4060</span>&#160;</div>
<div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>())</div>
<div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160;                <a class="code" href="class_ship.html#a51b71ffbd9d558e6e95b37552ed4dc9e">director_info</a> = <a class="code" href="class_game.html#a80f0de6fe1883b6b0e4c67b3e16afb2f">Game::GetText</a>(<span class="stringliteral">&quot;flcs.atmospheric&quot;</span>);</div>
<div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160;        }</div>
<div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160;</div>
<div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>)</div>
<div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>&#160;        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_flight_comp.html#aeef3fec879b2781e5869b34aa925ecbc">SetMode</a>(mode);</div>
<div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>&#160;}</div>
<div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>&#160;</div>
<div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l04070"></a><span class="lineno"><a class="code" href="class_ship.html#a0d3024bee22febe90b155e009344986c"> 4070</a></span>&#160;<a class="code" href="class_ship.html#a0d3024bee22febe90b155e009344986c">Ship::GetFLCSMode</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>&#160;        <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) <a class="code" href="class_ship.html#a760528b93de619f8173129585dcfa5f6">flcs_mode</a>;</div>
<div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>&#160;}</div>
<div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>&#160;</div>
<div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04076"></a><span class="lineno"><a class="code" href="class_ship.html#a147d7da94611eaf2f050749b9731b67b"> 4076</a></span>&#160;<a class="code" href="class_ship.html#a147d7da94611eaf2f050749b9731b67b">Ship::SetTransX</a>(<span class="keywordtype">double</span> t)</div>
<div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160;{</div>
<div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160;        <span class="keywordtype">float</span> limit = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a7257db57f3f26f72a9b2489bb5e330c8">trans_x</a>;</div>
<div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160;</div>
<div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>)</div>
<div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;        limit = (float) <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a82e97c45db11d0d18b64a0f35b14086c">TransXLimit</a>();</div>
<div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160;</div>
<div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160;        <a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> = (float) t;</div>
<div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160;</div>
<div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a>) {</div>
<div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> &gt; limit)</div>
<div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160;                <a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> = limit;</div>
<div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> &lt; -limit)</div>
<div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160;                <a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> = -limit;</div>
<div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160;</div>
<div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160;                <span class="comment">// reduce thruster efficiency at high fwd speed:</span></div>
<div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160;                <span class="keywordtype">double</span> vfwd = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a276d8f65ae6c09a07add9f63bd356704">vrt</a>() * <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>();</div>
<div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160;                <span class="keywordtype">double</span> vmag = fabs(vfwd);</div>
<div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160;                <span class="keywordflow">if</span> (vmag &gt; <a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>) {</div>
<div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> &gt; 0 &amp;&amp; vfwd &gt; 0 || <a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> &lt; 0 &amp;&amp; vfwd &lt; 0)</div>
<div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160;                        <a class="code" href="class_physical.html#a31ee78848140bfc4a05e3ccbf6770656">trans_x</a> *= (float) (pow(<a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>,4) / pow(vmag,4));</div>
<div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160;                }</div>
<div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160;        }</div>
<div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160;}</div>
<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160;</div>
<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04102"></a><span class="lineno"><a class="code" href="class_ship.html#aace8b70a9db706e9940537f825e84c09"> 4102</a></span>&#160;<a class="code" href="class_ship.html#aace8b70a9db706e9940537f825e84c09">Ship::SetTransY</a>(<span class="keywordtype">double</span> t)</div>
<div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>&#160;{</div>
<div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>&#160;        <span class="keywordtype">float</span> limit = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a0d87c6b237eb24fac4ca0a460e751876">trans_y</a>;</div>
<div class="line"><a name="l04105"></a><span class="lineno"> 4105</span>&#160;</div>
<div class="line"><a name="l04106"></a><span class="lineno"> 4106</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>)</div>
<div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>&#160;        limit = (float) <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a721162b34633baf23591f46ece541bf6">TransYLimit</a>();</div>
<div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160;</div>
<div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160;        <a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> = (float) t;</div>
<div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160;</div>
<div class="line"><a name="l04111"></a><span class="lineno"> 4111</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a>) {</div>
<div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160;                <span class="keywordtype">double</span> vmag = <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>().<a class="code" href="struct_point.html#a8ebcce847b8c214b7351904ce60f5518">length</a>();</div>
<div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160;</div>
<div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> &gt; limit)</div>
<div class="line"><a name="l04115"></a><span class="lineno"> 4115</span>&#160;                <a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> = limit;</div>
<div class="line"><a name="l04116"></a><span class="lineno"> 4116</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> &lt; -limit)</div>
<div class="line"><a name="l04117"></a><span class="lineno"> 4117</span>&#160;                <a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> = -limit;</div>
<div class="line"><a name="l04118"></a><span class="lineno"> 4118</span>&#160;</div>
<div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160;                <span class="comment">// reduce thruster efficiency at high fwd speed:</span></div>
<div class="line"><a name="l04120"></a><span class="lineno"> 4120</span>&#160;                <span class="keywordflow">if</span> (vmag &gt; <a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>) {</div>
<div class="line"><a name="l04121"></a><span class="lineno"> 4121</span>&#160;                        <span class="keywordtype">double</span> vfwd = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a6767fa21da7413fe049cf64eed98f02f">vpn</a>() * <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>();</div>
<div class="line"><a name="l04122"></a><span class="lineno"> 4122</span>&#160;</div>
<div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> &gt; 0 &amp;&amp; vfwd &gt; 0 || <a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> &lt; 0 &amp;&amp; vfwd &lt; 0)</div>
<div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160;                        <a class="code" href="class_physical.html#a41e10f76bb0bee8782e12b1b4ff9eacc">trans_y</a> *= (float) (pow(<a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>,4) / pow(vmag,4));</div>
<div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160;                }</div>
<div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160;        }</div>
<div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160;}</div>
<div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160;</div>
<div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04130"></a><span class="lineno"><a class="code" href="class_ship.html#a5a4aa08ee2da06cec328b034dee4f8c0"> 4130</a></span>&#160;<a class="code" href="class_ship.html#a5a4aa08ee2da06cec328b034dee4f8c0">Ship::SetTransZ</a>(<span class="keywordtype">double</span> t)</div>
<div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160;{</div>
<div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160;        <span class="keywordtype">float</span> limit = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#aaf042f3a7a4cbeb65ed9b96a963c76b1">trans_z</a>;</div>
<div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160;</div>
<div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>)</div>
<div class="line"><a name="l04135"></a><span class="lineno"> 4135</span>&#160;        limit = (float) <a class="code" href="class_ship.html#acf4eb90a3805a7d3e89e922546893808">thruster</a>-&gt;<a class="code" href="class_thruster.html#a36b81259b61b3dc87584806768e1de22">TransZLimit</a>();</div>
<div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>&#160;</div>
<div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>&#160;        <a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> = (float) t;</div>
<div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>&#160;</div>
<div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a>) {</div>
<div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>&#160;</div>
<div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> &gt; limit)</div>
<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160;                <a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> = limit;</div>
<div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> &lt; -limit)</div>
<div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>&#160;                <a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> = -limit;</div>
<div class="line"><a name="l04145"></a><span class="lineno"> 4145</span>&#160;</div>
<div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160;                <span class="comment">// reduce thruster efficiency at high fwd speed:</span></div>
<div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160;                <span class="keywordtype">double</span> vfwd = <a class="code" href="class_physical.html#ae6b6004183efe4ba25cace4fc3f2fd4d">cam</a>.<a class="code" href="class_camera.html#a38ab2061d58da025e9c95267505686ab">vup</a>() * <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>();</div>
<div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160;                <span class="keywordtype">double</span> vmag = fabs(vfwd);</div>
<div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160;                <span class="keywordflow">if</span> (vmag &gt; <a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>) {</div>
<div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> &gt; 0 &amp;&amp; vfwd &gt; 0 || <a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> &lt; 0 &amp;&amp; vfwd &lt; 0)</div>
<div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160;                        <a class="code" href="class_physical.html#a23a156200251e24ac72d80854b870c9b">trans_z</a> *= (float) (pow(<a class="code" href="class_ship.html#aa8992d22872d29b3be7a60c0b046ea3b">vlimit</a>,4) / pow(vmag,4));</div>
<div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160;                }</div>
<div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160;        }</div>
<div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160;}</div>
<div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160;</div>
<div class="line"><a name="l04156"></a><span class="lineno"> 4156</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04157"></a><span class="lineno"><a class="code" href="class_ship.html#aec7034aed96a05896d94d5189581674e"> 4157</a></span>&#160;<a class="code" href="class_ship.html#aec7034aed96a05896d94d5189581674e">Ship::ExecFLCSFrame</a>()</div>
<div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>&#160;{</div>
<div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>)</div>
<div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>&#160;        <a class="code" href="class_ship.html#abf3d8d1cf5dd21a85f81984a294cc502">flcs</a>-&gt;<a class="code" href="class_flight_comp.html#a525ed1c881773627d4f6c6d4ea1c73f6">ExecSubFrame</a>();</div>
<div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>&#160;}</div>
<div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>&#160;</div>
<div class="line"><a name="l04163"></a><span class="lineno"> 4163</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04164"></a><span class="lineno"> 4164</span>&#160;</div>
<div class="line"><a name="l04165"></a><span class="lineno"> 4165</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04166"></a><span class="lineno"><a class="code" href="class_ship.html#a895e09fc4d671544fe7d963d4b62ec97"> 4166</a></span>&#160;<a class="code" href="class_ship.html#a895e09fc4d671544fe7d963d4b62ec97">Ship::SetHelmHeading</a>(<span class="keywordtype">double</span> h)</div>
<div class="line"><a name="l04167"></a><span class="lineno"> 4167</span>&#160;{</div>
<div class="line"><a name="l04168"></a><span class="lineno"> 4168</span>&#160;        <span class="keywordflow">while</span> (h &lt; 0)</div>
<div class="line"><a name="l04169"></a><span class="lineno"> 4169</span>&#160;        h += 2*<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>;</div>
<div class="line"><a name="l04170"></a><span class="lineno"> 4170</span>&#160;</div>
<div class="line"><a name="l04171"></a><span class="lineno"> 4171</span>&#160;        <span class="keywordflow">while</span> (h &gt;= 2*<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>)</div>
<div class="line"><a name="l04172"></a><span class="lineno"> 4172</span>&#160;        h -= 2*<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>;</div>
<div class="line"><a name="l04173"></a><span class="lineno"> 4173</span>&#160;</div>
<div class="line"><a name="l04174"></a><span class="lineno"> 4174</span>&#160;        <a class="code" href="class_ship.html#a95f9344b62a12c1747ffc701a261ea46">helm_heading</a> = (float) h;</div>
<div class="line"><a name="l04175"></a><span class="lineno"> 4175</span>&#160;}</div>
<div class="line"><a name="l04176"></a><span class="lineno"> 4176</span>&#160;</div>
<div class="line"><a name="l04177"></a><span class="lineno"> 4177</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04178"></a><span class="lineno"><a class="code" href="class_ship.html#afe05f1955ba1829116376d653ba3455e"> 4178</a></span>&#160;<a class="code" href="class_ship.html#afe05f1955ba1829116376d653ba3455e">Ship::SetHelmPitch</a>(<span class="keywordtype">double</span> p)</div>
<div class="line"><a name="l04179"></a><span class="lineno"> 4179</span>&#160;{</div>
<div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">double</span> PITCH_LIMIT = 80 * <a class="code" href="_geometry_8h.html#a530d0fdbd8b1d8b27d9dffd58969e394">DEGREES</a>;</div>
<div class="line"><a name="l04181"></a><span class="lineno"> 4181</span>&#160;</div>
<div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>&#160;        <span class="keywordflow">if</span> (p &lt; -PITCH_LIMIT)</div>
<div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>&#160;        p = -PITCH_LIMIT;</div>
<div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>&#160;</div>
<div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p &gt; PITCH_LIMIT)</div>
<div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160;        p =  PITCH_LIMIT;</div>
<div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160;</div>
<div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160;        <a class="code" href="class_ship.html#ad6631ae3d5810cddab320e454f4616c0">helm_pitch</a> = (float) p;</div>
<div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160;}</div>
<div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160;</div>
<div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04192"></a><span class="lineno"><a class="code" href="class_ship.html#a639718e2b02486a60799d0672b3d0dfb"> 4192</a></span>&#160;<a class="code" href="class_ship.html#a639718e2b02486a60799d0672b3d0dfb">Ship::ApplyHelmYaw</a>(<span class="keywordtype">double</span> y)</div>
<div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160;{</div>
<div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160;        <span class="comment">// rotate compass into helm-relative orientation:</span></div>
<div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>&#160;        <span class="keywordtype">double</span> compass = <a class="code" href="class_ship.html#a0d2b7974686fd50c057aa8503f8f7e77">CompassHeading</a>() - <a class="code" href="class_ship.html#a95f9344b62a12c1747ffc701a261ea46">helm_heading</a>;</div>
<div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>&#160;        <span class="keywordtype">double</span> turn    = y * <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>/4;</div>
<div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>&#160;</div>
<div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>&#160;        <span class="keywordflow">if</span> (compass &gt; <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>)</div>
<div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>&#160;        compass -= 2*<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>;</div>
<div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (compass &lt; -<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>)</div>
<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>&#160;        compass += 2*<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>;</div>
<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>&#160;</div>
<div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>&#160;        <span class="comment">// if requested turn is more than 170, reject it:</span></div>
<div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>&#160;        <span class="keywordflow">if</span> (fabs(compass + turn) &gt; 170*<a class="code" href="_geometry_8h.html#a530d0fdbd8b1d8b27d9dffd58969e394">DEGREES</a>)</div>
<div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>&#160;</div>
<div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>&#160;        <a class="code" href="class_ship.html#a895e09fc4d671544fe7d963d4b62ec97">SetHelmHeading</a>(<a class="code" href="class_ship.html#a95f9344b62a12c1747ffc701a261ea46">helm_heading</a> + turn);</div>
<div class="line"><a name="l04208"></a><span class="lineno"> 4208</span>&#160;}</div>
<div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>&#160;</div>
<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04211"></a><span class="lineno"><a class="code" href="class_ship.html#aad9ea33cada7af3ec023cc53b46c9d65"> 4211</a></span>&#160;<a class="code" href="class_ship.html#aad9ea33cada7af3ec023cc53b46c9d65">Ship::ApplyHelmPitch</a>(<span class="keywordtype">double</span> p)</div>
<div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>&#160;{</div>
<div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>&#160;        <a class="code" href="class_ship.html#afe05f1955ba1829116376d653ba3455e">SetHelmPitch</a>(<a class="code" href="class_ship.html#ad6631ae3d5810cddab320e454f4616c0">helm_pitch</a> - p * <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>/4);</div>
<div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>&#160;}</div>
<div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>&#160;</div>
<div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04217"></a><span class="lineno"><a class="code" href="class_ship.html#a4f0f1545d4f119cd67e77030fdd80495"> 4217</a></span>&#160;<a class="code" href="class_ship.html#a4f0f1545d4f119cd67e77030fdd80495">Ship::ApplyPitch</a>(<span class="keywordtype">double</span> p)</div>
<div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>&#160;{</div>
<div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a79ce035e9192f881d91da2cbe609003a">flight_model</a> == 0) { <span class="comment">// standard flight model</span></div>
<div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>())</div>
<div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>&#160;                p *= 0.5;</div>
<div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>&#160;</div>
<div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>&#160;                <span class="comment">// command for pitch up is negative</span></div>
<div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>&#160;                <span class="keywordflow">if</span> (p &lt; 0) {</div>
<div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#aef5c6056fc4474dee315086cc6a20ff5">alpha</a> &gt; <a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>/6) {</div>
<div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>&#160;                                p *= 0.05;</div>
<div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>&#160;                        }</div>
<div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#afb906a30f8a81dfa01bc72dfc6a018fb">g_force</a> &gt; 12.0) {</div>
<div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>&#160;                                <span class="keywordtype">double</span> limit = 0.5 - (<a class="code" href="class_ship.html#afb906a30f8a81dfa01bc72dfc6a018fb">g_force</a> - 12.0)/10.0;</div>
<div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>&#160;</div>
<div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>&#160;                                <span class="keywordflow">if</span> (limit &lt; 0)</div>
<div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>&#160;                                p = 0;</div>
<div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>&#160;                                <span class="keywordflow">else</span></div>
<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160;                                p *= limit;</div>
<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160;                        }</div>
<div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>&#160;                }</div>
<div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>&#160;</div>
<div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>&#160;                <span class="comment">// command for pitch down is positive</span></div>
<div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p &gt; 0) {</div>
<div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#aef5c6056fc4474dee315086cc6a20ff5">alpha</a> &lt; -<a class="code" href="_geometry_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>/8) {</div>
<div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>&#160;                                p *= 0.05;</div>
<div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>&#160;                        }</div>
<div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>&#160;                        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#afb906a30f8a81dfa01bc72dfc6a018fb">g_force</a> &lt; -3) {</div>
<div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>&#160;                                p *= 0.1;</div>
<div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>&#160;                        }</div>
<div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>&#160;                }</div>
<div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>&#160;        }</div>
<div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>&#160;</div>
<div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>&#160;        <a class="code" href="class_ship.html#a4f0f1545d4f119cd67e77030fdd80495">Physical::ApplyPitch</a>(p);</div>
<div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>&#160;}</div>
<div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>&#160;</div>
<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>&#160;</div>
<div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l04255"></a><span class="lineno"><a class="code" href="class_ship.html#a52c00dd73c69854f16a2fdb9f84daf22"> 4255</a></span>&#160;<a class="code" href="class_ship.html#a52c00dd73c69854f16a2fdb9f84daf22">Ship::FireWeapon</a>(<span class="keywordtype">int</span> n)</div>
<div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>&#160;{</div>
<div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>&#160;        <span class="keywordtype">bool</span> fired = <span class="keyword">false</span>;</div>
<div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>&#160;</div>
<div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>&#160;        <span class="keywordflow">if</span> (n &gt;= 0 &amp;&amp; !<a class="code" href="class_ship.html#a949ae5f84d64745ee61f704a23dd0d64">CheckFire</a>()) {</div>
<div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>&#160;                <span class="keywordflow">if</span> (n &lt; 4)</div>
<div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>&#160;                <a class="code" href="class_ship.html#aa9fa7bcc6a1f49b5aa218589e380e481">trigger</a>[n] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>&#160;</div>
<div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>&#160;                <span class="keywordflow">if</span> (n &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>()) {</div>
<div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>&#160;                        <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[n]-&gt;SetTrigger(<span class="keyword">true</span>);</div>
<div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>&#160;                        fired = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[n]-&gt;GetTrigger();</div>
<div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>&#160;                }</div>
<div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>&#160;        }</div>
<div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>&#160;</div>
<div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>&#160;        <span class="keywordflow">if</span> (!fired &amp;&amp; <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a77c21538f4c452ea5ae3d2f8af689893">GetPlayerShip</a>() == <span class="keyword">this</span>)</div>
<div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>&#160;        <a class="code" href="class_button.html#ae6e3175ed99c0da153a29a7d6fc244e0">Button::PlaySound</a>(<a class="code" href="class_button.html#a1d411105a1bda290cefbbb065bb685c8aa445cfeeb6181090e11c928557094d5b">Button::SND_REJECT</a>);</div>
<div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>&#160;</div>
<div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>&#160;        <span class="keywordflow">return</span> fired;</div>
<div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>&#160;}</div>
<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160;</div>
<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l04276"></a><span class="lineno"><a class="code" href="class_ship.html#ad0df57a35655a4041edfa7ee8ec6f1a4"> 4276</a></span>&#160;<a class="code" href="class_ship.html#ad0df57a35655a4041edfa7ee8ec6f1a4">Ship::FireDecoy</a>()</div>
<div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>&#160;{</div>
<div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>&#160;        <a class="code" href="class_shot.html">Shot</a>* drone = 0;</div>
<div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>&#160;</div>
<div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a> &amp;&amp; !<a class="code" href="class_ship.html#a949ae5f84d64745ee61f704a23dd0d64">CheckFire</a>()) {</div>
<div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>&#160;                drone = <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>-&gt;<a class="code" href="class_weapon.html#afc2a282a50d257ab8f08646d5b3afdb2">Fire</a>();</div>
<div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>&#160;</div>
<div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>&#160;                <span class="keywordflow">if</span> (drone) {</div>
<div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>&#160;                        <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(drone);</div>
<div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>&#160;                        <a class="code" href="class_ship.html#a2f3e4054e712103540bebdc03f58c74d">decoy_list</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(drone);</div>
<div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>&#160;                }</div>
<div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>&#160;        }</div>
<div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>&#160;</div>
<div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a77c21538f4c452ea5ae3d2f8af689893">GetPlayerShip</a>() == <span class="keyword">this</span>) {</div>
<div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_net_game.html#a0560a25c61d20efd80fd100dfff84c3d">NetGame::IsNetGame</a>()) {</div>
<div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a> &amp;&amp; <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>-&gt;<a class="code" href="class_weapon.html#a1f251c3268deaff5dc3bd6877179fdb5">Ammo</a>() &lt; 1)</div>
<div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>&#160;                        <a class="code" href="class_button.html#ae6e3175ed99c0da153a29a7d6fc244e0">Button::PlaySound</a>(<a class="code" href="class_button.html#a1d411105a1bda290cefbbb065bb685c8aa445cfeeb6181090e11c928557094d5b">Button::SND_REJECT</a>);</div>
<div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>&#160;                }</div>
<div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>&#160;</div>
<div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!drone) {</div>
<div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>&#160;                        <a class="code" href="class_button.html#ae6e3175ed99c0da153a29a7d6fc244e0">Button::PlaySound</a>(<a class="code" href="class_button.html#a1d411105a1bda290cefbbb065bb685c8aa445cfeeb6181090e11c928557094d5b">Button::SND_REJECT</a>);</div>
<div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>&#160;                }</div>
<div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>&#160;        }</div>
<div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>&#160;</div>
<div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>&#160;        <span class="keywordflow">return</span> drone != 0;</div>
<div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>&#160;}</div>
<div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>&#160;</div>
<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04304"></a><span class="lineno"><a class="code" href="class_ship.html#a1ab4aacb54eaef55e03312511c506422"> 4304</a></span>&#160;<a class="code" href="class_ship.html#a1ab4aacb54eaef55e03312511c506422">Ship::AddActiveDecoy</a>(<a class="code" href="class_drone.html">Drone</a>* drone)</div>
<div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>&#160;{</div>
<div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>&#160;        <span class="keywordflow">if</span> (drone) {</div>
<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>&#160;                <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(drone);</div>
<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>&#160;                <a class="code" href="class_ship.html#a2f3e4054e712103540bebdc03f58c74d">decoy_list</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(drone);</div>
<div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>&#160;        }</div>
<div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>&#160;}</div>
<div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>&#160;</div>
<div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>&#160;<a class="code" href="class_weapon.html">Weapon</a>*</div>
<div class="line"><a name="l04313"></a><span class="lineno"><a class="code" href="class_ship.html#a93e3112787153b328bef39b71c4964a3"> 4313</a></span>&#160;<a class="code" href="class_ship.html#a93e3112787153b328bef39b71c4964a3">Ship::GetPrimary</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>)</div>
<div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>]-&gt;GetSelected();</div>
<div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>&#160;}</div>
<div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>&#160;</div>
<div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>&#160;<a class="code" href="class_weapon.html">Weapon</a>*</div>
<div class="line"><a name="l04321"></a><span class="lineno"><a class="code" href="class_ship.html#a08b7da74631bf6548c5647346138fdf0"> 4321</a></span>&#160;<a class="code" href="class_ship.html#a08b7da74631bf6548c5647346138fdf0">Ship::GetSecondary</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>)</div>
<div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>]-&gt;GetSelected();</div>
<div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>&#160;}</div>
<div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>&#160;</div>
<div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>&#160;<a class="code" href="class_weapon.html">Weapon</a>*</div>
<div class="line"><a name="l04329"></a><span class="lineno"><a class="code" href="class_ship.html#a6cb788e06203e9ead89b7e800e1d0af7"> 4329</a></span>&#160;<a class="code" href="class_ship.html#a6cb788e06203e9ead89b7e800e1d0af7">Ship::GetWeaponByIndex</a>(<span class="keywordtype">int</span> n)</div>
<div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>&#160;{</div>
<div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>&#160;                <a class="code" href="class_weapon_group.html">WeaponGroup</a>* g = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i];</div>
<div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>&#160;</div>
<div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>&#160;                <a class="code" href="class_list.html">List&lt;Weapon&gt;</a>&amp; wlist = g-&gt;<a class="code" href="class_weapon_group.html#a7ef898738d963c63c26de2d15196108a">GetWeapons</a>();</div>
<div class="line"><a name="l04335"></a><span class="lineno"> 4335</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; wlist.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); j++) {</div>
<div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>&#160;                        <a class="code" href="class_weapon.html">Weapon</a>* w = wlist[j];</div>
<div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>&#160;</div>
<div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>&#160;                        <span class="keywordflow">if</span> (w-&gt;<a class="code" href="class_weapon.html#a032fdd844ae0e631e60d60b0e75ab28c">GetIndex</a>() == n) {</div>
<div class="line"><a name="l04339"></a><span class="lineno"> 4339</span>&#160;                                <span class="keywordflow">return</span> w;</div>
<div class="line"><a name="l04340"></a><span class="lineno"> 4340</span>&#160;                        }</div>
<div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>&#160;                }</div>
<div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>&#160;        }</div>
<div class="line"><a name="l04343"></a><span class="lineno"> 4343</span>&#160;</div>
<div class="line"><a name="l04344"></a><span class="lineno"> 4344</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04345"></a><span class="lineno"> 4345</span>&#160;}</div>
<div class="line"><a name="l04346"></a><span class="lineno"> 4346</span>&#160;</div>
<div class="line"><a name="l04347"></a><span class="lineno"> 4347</span>&#160;<a class="code" href="class_weapon_group.html">WeaponGroup</a>*</div>
<div class="line"><a name="l04348"></a><span class="lineno"><a class="code" href="class_ship.html#af2f155203d71da9c7f0e7969d03046ce"> 4348</a></span>&#160;<a class="code" href="class_ship.html#af2f155203d71da9c7f0e7969d03046ce">Ship::GetPrimaryGroup</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04350"></a><span class="lineno"> 4350</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>)</div>
<div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>];</div>
<div class="line"><a name="l04352"></a><span class="lineno"> 4352</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>&#160;}</div>
<div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>&#160;</div>
<div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>&#160;<a class="code" href="class_weapon_group.html">WeaponGroup</a>*</div>
<div class="line"><a name="l04356"></a><span class="lineno"><a class="code" href="class_ship.html#a8d23d163362ef28d74a1ea49ae1e3861"> 4356</a></span>&#160;<a class="code" href="class_ship.html#a8d23d163362ef28d74a1ea49ae1e3861">Ship::GetSecondaryGroup</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>)</div>
<div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>];</div>
<div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>&#160;}</div>
<div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>&#160;</div>
<div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>&#160;<a class="code" href="class_weapon_design.html">WeaponDesign</a>*</div>
<div class="line"><a name="l04364"></a><span class="lineno"><a class="code" href="class_ship.html#a2abbc9fcb5394137374d3ba5d2300bc0"> 4364</a></span>&#160;<a class="code" href="class_ship.html#a2abbc9fcb5394137374d3ba5d2300bc0">Ship::GetPrimaryDesign</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; <a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>)</div>
<div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="class_weapon_design.html">WeaponDesign</a>*) <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a488cc3e2a6450cc1fe649d81d74cb905">primary</a>]-&gt;GetSelected()-&gt;Design();</div>
<div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>&#160;        <span class="keywordflow">return</span> 0;   </div>
<div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>&#160;}</div>
<div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>&#160;</div>
<div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>&#160;<a class="code" href="class_weapon_design.html">WeaponDesign</a>*</div>
<div class="line"><a name="l04372"></a><span class="lineno"><a class="code" href="class_ship.html#a19965c0f0f0820136d73e0a4eacf0988"> 4372</a></span>&#160;<a class="code" href="class_ship.html#a19965c0f0f0820136d73e0a4eacf0988">Ship::GetSecondaryDesign</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; <a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>)</div>
<div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="class_weapon_design.html">WeaponDesign</a>*) <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[<a class="code" href="class_ship.html#a92737f3175b77a72da530025383cf5e3">secondary</a>]-&gt;GetSelected()-&gt;Design();</div>
<div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>&#160;        <span class="keywordflow">return</span> 0;   </div>
<div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>&#160;}</div>
<div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>&#160;</div>
<div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>&#160;<a class="code" href="class_weapon.html">Weapon</a>*</div>
<div class="line"><a name="l04380"></a><span class="lineno"><a class="code" href="class_ship.html#a1e93fe499fbb182e444933f47fc894dc"> 4380</a></span>&#160;<a class="code" href="class_ship.html#a1e93fe499fbb182e444933f47fc894dc">Ship::GetDecoy</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a31db51b942156fba72a0ddfac868a58f">decoy</a>;</div>
<div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160;}</div>
<div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160;</div>
<div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160;<a class="code" href="class_list.html">List&lt;Shot&gt;</a>&amp; </div>
<div class="line"><a name="l04386"></a><span class="lineno"><a class="code" href="class_ship.html#af6360dc29489e35a6c26acf0832b390d"> 4386</a></span>&#160;<a class="code" href="class_ship.html#af6360dc29489e35a6c26acf0832b390d">Ship::GetActiveDecoys</a>()</div>
<div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160;{</div>
<div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a2f3e4054e712103540bebdc03f58c74d">decoy_list</a>;</div>
<div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160;}</div>
<div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160;</div>
<div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160;<a class="code" href="class_list.html">List&lt;Shot&gt;</a>&amp; </div>
<div class="line"><a name="l04392"></a><span class="lineno"><a class="code" href="class_ship.html#a251b0ba6a415a194fc7245fda5ff421e"> 4392</a></span>&#160;<a class="code" href="class_ship.html#a251b0ba6a415a194fc7245fda5ff421e">Ship::GetThreatList</a>()</div>
<div class="line"><a name="l04393"></a><span class="lineno"> 4393</span>&#160;{</div>
<div class="line"><a name="l04394"></a><span class="lineno"> 4394</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#ad80b7850e2414f0f30f8f721f30f5afd">threat_list</a>;</div>
<div class="line"><a name="l04395"></a><span class="lineno"> 4395</span>&#160;}</div>
<div class="line"><a name="l04396"></a><span class="lineno"> 4396</span>&#160;</div>
<div class="line"><a name="l04397"></a><span class="lineno"> 4397</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04398"></a><span class="lineno"><a class="code" href="class_ship.html#abe165ce8724a13a99a4c11522389623a"> 4398</a></span>&#160;<a class="code" href="class_ship.html#abe165ce8724a13a99a4c11522389623a">Ship::AddThreat</a>(<a class="code" href="class_shot.html">Shot</a>* s)</div>
<div class="line"><a name="l04399"></a><span class="lineno"> 4399</span>&#160;{</div>
<div class="line"><a name="l04400"></a><span class="lineno"> 4400</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#ad80b7850e2414f0f30f8f721f30f5afd">threat_list</a>.<a class="code" href="class_list.html#a191e00bc07b79de1075cb41c9d6702cf">contains</a>(s)) {</div>
<div class="line"><a name="l04401"></a><span class="lineno"> 4401</span>&#160;                <a class="code" href="class_sim_observer.html#ae6c9a20e4fd0bcb3590f983a391dd451">Observe</a>(s);</div>
<div class="line"><a name="l04402"></a><span class="lineno"> 4402</span>&#160;                <a class="code" href="class_ship.html#ad80b7850e2414f0f30f8f721f30f5afd">threat_list</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(s);</div>
<div class="line"><a name="l04403"></a><span class="lineno"> 4403</span>&#160;        }</div>
<div class="line"><a name="l04404"></a><span class="lineno"> 4404</span>&#160;}</div>
<div class="line"><a name="l04405"></a><span class="lineno"> 4405</span>&#160;</div>
<div class="line"><a name="l04406"></a><span class="lineno"> 4406</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04407"></a><span class="lineno"><a class="code" href="class_ship.html#a61a6e7ad2fae9f0be15b23885615767c"> 4407</a></span>&#160;<a class="code" href="class_ship.html#a61a6e7ad2fae9f0be15b23885615767c">Ship::DropThreat</a>(<a class="code" href="class_shot.html">Shot</a>* s)</div>
<div class="line"><a name="l04408"></a><span class="lineno"> 4408</span>&#160;{</div>
<div class="line"><a name="l04409"></a><span class="lineno"> 4409</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ad80b7850e2414f0f30f8f721f30f5afd">threat_list</a>.<a class="code" href="class_list.html#a191e00bc07b79de1075cb41c9d6702cf">contains</a>(s)) {</div>
<div class="line"><a name="l04410"></a><span class="lineno"> 4410</span>&#160;                <a class="code" href="class_ship.html#ad80b7850e2414f0f30f8f721f30f5afd">threat_list</a>.<a class="code" href="class_list.html#ae15a901edc7364cba3a3f3fdc10034f7">remove</a>(s);</div>
<div class="line"><a name="l04411"></a><span class="lineno"> 4411</span>&#160;        }</div>
<div class="line"><a name="l04412"></a><span class="lineno"> 4412</span>&#160;}</div>
<div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>&#160;</div>
<div class="line"><a name="l04414"></a><span class="lineno"> 4414</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l04415"></a><span class="lineno"><a class="code" href="class_ship.html#a48df9a0cb02134343ae3f37736b6a668"> 4415</a></span>&#160;<a class="code" href="class_ship.html#a48df9a0cb02134343ae3f37736b6a668">Ship::GetTrigger</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>&#160;        <span class="keywordflow">if</span> (i &gt;= 0) {</div>
<div class="line"><a name="l04418"></a><span class="lineno"> 4418</span>&#160;                <span class="keywordflow">if</span> (i &lt; 4)</div>
<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="class_ship.html#aa9fa7bcc6a1f49b5aa218589e380e481">trigger</a>[i];</div>
<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160;</div>
<div class="line"><a name="l04421"></a><span class="lineno"> 4421</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l04422"></a><span class="lineno"> 4422</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i]-&gt;<a class="code" href="class_ship.html#a48df9a0cb02134343ae3f37736b6a668">GetTrigger</a>();</div>
<div class="line"><a name="l04423"></a><span class="lineno"> 4423</span>&#160;        }</div>
<div class="line"><a name="l04424"></a><span class="lineno"> 4424</span>&#160;</div>
<div class="line"><a name="l04425"></a><span class="lineno"> 4425</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l04426"></a><span class="lineno"> 4426</span>&#160;}</div>
<div class="line"><a name="l04427"></a><span class="lineno"> 4427</span>&#160;</div>
<div class="line"><a name="l04428"></a><span class="lineno"> 4428</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04429"></a><span class="lineno"><a class="code" href="class_ship.html#a5d67b519ea8a2345e48bc8c608e21b0d"> 4429</a></span>&#160;<a class="code" href="class_ship.html#a5d67b519ea8a2345e48bc8c608e21b0d">Ship::SetTrigger</a>(<span class="keywordtype">int</span> i)</div>
<div class="line"><a name="l04430"></a><span class="lineno"> 4430</span>&#160;{</div>
<div class="line"><a name="l04431"></a><span class="lineno"> 4431</span>&#160;        <span class="keywordflow">if</span> (i &gt;= 0 &amp;&amp; !<a class="code" href="class_ship.html#a949ae5f84d64745ee61f704a23dd0d64">CheckFire</a>()) {</div>
<div class="line"><a name="l04432"></a><span class="lineno"> 4432</span>&#160;                <span class="keywordflow">if</span> (i &lt; 4)</div>
<div class="line"><a name="l04433"></a><span class="lineno"> 4433</span>&#160;                <a class="code" href="class_ship.html#aa9fa7bcc6a1f49b5aa218589e380e481">trigger</a>[i] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l04434"></a><span class="lineno"> 4434</span>&#160;</div>
<div class="line"><a name="l04435"></a><span class="lineno"> 4435</span>&#160;                <span class="keywordflow">if</span> (i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>())</div>
<div class="line"><a name="l04436"></a><span class="lineno"> 4436</span>&#160;                <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i]-&gt;<a class="code" href="class_ship.html#a5d67b519ea8a2345e48bc8c608e21b0d">SetTrigger</a>();</div>
<div class="line"><a name="l04437"></a><span class="lineno"> 4437</span>&#160;        }</div>
<div class="line"><a name="l04438"></a><span class="lineno"> 4438</span>&#160;}</div>
<div class="line"><a name="l04439"></a><span class="lineno"> 4439</span>&#160;</div>
<div class="line"><a name="l04440"></a><span class="lineno"> 4440</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04441"></a><span class="lineno"> 4441</span>&#160;</div>
<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04443"></a><span class="lineno"><a class="code" href="class_ship.html#add44730058f4b2da0feeba96a9e71512"> 4443</a></span>&#160;<a class="code" href="class_ship.html#add44730058f4b2da0feeba96a9e71512">Ship::SetSensorMode</a>(<span class="keywordtype">int</span> mode)</div>
<div class="line"><a name="l04444"></a><span class="lineno"> 4444</span>&#160;{</div>
<div class="line"><a name="l04445"></a><span class="lineno"> 4445</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>)</div>
<div class="line"><a name="l04446"></a><span class="lineno"> 4446</span>&#160;        <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#a79ebe6fc17fc57e9351eeda1208ad1ee">SetMode</a>((<a class="code" href="class_sensor.html#a67373e45d6929876af10812b6c736016">Sensor::Mode</a>) mode);</div>
<div class="line"><a name="l04447"></a><span class="lineno"> 4447</span>&#160;}</div>
<div class="line"><a name="l04448"></a><span class="lineno"> 4448</span>&#160;</div>
<div class="line"><a name="l04449"></a><span class="lineno"> 4449</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l04450"></a><span class="lineno"><a class="code" href="class_ship.html#a51977b45ed525c3b71ab979e76b3ef65"> 4450</a></span>&#160;<a class="code" href="class_ship.html#a51977b45ed525c3b71ab979e76b3ef65">Ship::GetSensorMode</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04451"></a><span class="lineno"> 4451</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04452"></a><span class="lineno"> 4452</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>)</div>
<div class="line"><a name="l04453"></a><span class="lineno"> 4453</span>&#160;        <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#a23742fbd06ccf6c8d6b6fb26f79e7fa1">GetMode</a>();</div>
<div class="line"><a name="l04454"></a><span class="lineno"> 4454</span>&#160;</div>
<div class="line"><a name="l04455"></a><span class="lineno"> 4455</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04456"></a><span class="lineno"> 4456</span>&#160;}</div>
<div class="line"><a name="l04457"></a><span class="lineno"> 4457</span>&#160;</div>
<div class="line"><a name="l04458"></a><span class="lineno"> 4458</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04459"></a><span class="lineno"> 4459</span>&#160;</div>
<div class="line"><a name="l04460"></a><span class="lineno"> 4460</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l04461"></a><span class="lineno"><a class="code" href="class_ship.html#afa8d17143e227505b915b5e32732e770"> 4461</a></span>&#160;<a class="code" href="class_ship.html#afa8d17143e227505b915b5e32732e770">Ship::IsTracking</a>(<a class="code" href="class_sim_object.html">SimObject</a>* tgt)</div>
<div class="line"><a name="l04462"></a><span class="lineno"> 4462</span>&#160;{</div>
<div class="line"><a name="l04463"></a><span class="lineno"> 4463</span>&#160;        <span class="keywordflow">if</span> (tgt &amp;&amp; <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>)</div>
<div class="line"><a name="l04464"></a><span class="lineno"> 4464</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#a35e4047dd120876ac9f5db7e9b586de9">IsTracking</a>(tgt);</div>
<div class="line"><a name="l04465"></a><span class="lineno"> 4465</span>&#160;</div>
<div class="line"><a name="l04466"></a><span class="lineno"> 4466</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l04467"></a><span class="lineno"> 4467</span>&#160;}</div>
<div class="line"><a name="l04468"></a><span class="lineno"> 4468</span>&#160;</div>
<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160;</div>
<div class="line"><a name="l04471"></a><span class="lineno"> 4471</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04472"></a><span class="lineno"><a class="code" href="class_ship.html#afe5d622c03d1d931ac346c2b0fcbf28f"> 4472</a></span>&#160;<a class="code" href="class_ship.html#afe5d622c03d1d931ac346c2b0fcbf28f">Ship::LockTarget</a>(<span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> closest, <span class="keywordtype">bool</span> hostile)</div>
<div class="line"><a name="l04473"></a><span class="lineno"> 4473</span>&#160;{</div>
<div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>)</div>
<div class="line"><a name="l04475"></a><span class="lineno"> 4475</span>&#160;        <a class="code" href="class_ship.html#a882257be36111642f1822752a4f413da">SetTarget</a>(<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#a68b6eb841e16165731e6faeb310cea5b">LockTarget</a>(type, closest, hostile));</div>
<div class="line"><a name="l04476"></a><span class="lineno"> 4476</span>&#160;}</div>
<div class="line"><a name="l04477"></a><span class="lineno"> 4477</span>&#160;</div>
<div class="line"><a name="l04478"></a><span class="lineno"> 4478</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04479"></a><span class="lineno"> 4479</span>&#160;</div>
<div class="line"><a name="l04480"></a><span class="lineno"> 4480</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04481"></a><span class="lineno"><a class="code" href="class_ship.html#a0b6fd5949aea039f44f2a4d2699824ae"> 4481</a></span>&#160;<a class="code" href="class_ship.html#afe5d622c03d1d931ac346c2b0fcbf28f">Ship::LockTarget</a>(<a class="code" href="class_sim_object.html">SimObject</a>* candidate)</div>
<div class="line"><a name="l04482"></a><span class="lineno"> 4482</span>&#160;{</div>
<div class="line"><a name="l04483"></a><span class="lineno"> 4483</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>)</div>
<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>&#160;        <a class="code" href="class_ship.html#a882257be36111642f1822752a4f413da">SetTarget</a>(<a class="code" href="class_ship.html#a47008f12230ce01ba024d5dd6e954724">sensor</a>-&gt;<a class="code" href="class_sensor.html#a68b6eb841e16165731e6faeb310cea5b">LockTarget</a>(candidate));</div>
<div class="line"><a name="l04485"></a><span class="lineno"> 4485</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l04486"></a><span class="lineno"> 4486</span>&#160;        <a class="code" href="class_ship.html#a882257be36111642f1822752a4f413da">SetTarget</a>(candidate);</div>
<div class="line"><a name="l04487"></a><span class="lineno"> 4487</span>&#160;}</div>
<div class="line"><a name="l04488"></a><span class="lineno"> 4488</span>&#160;</div>
<div class="line"><a name="l04489"></a><span class="lineno"> 4489</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04490"></a><span class="lineno"> 4490</span>&#160;</div>
<div class="line"><a name="l04491"></a><span class="lineno"> 4491</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l04492"></a><span class="lineno"><a class="code" href="class_ship.html#a6740677249996feee8b8bbed9ad884b9"> 4492</a></span>&#160;<a class="code" href="class_ship.html#a6740677249996feee8b8bbed9ad884b9">Ship::InflictDamage</a>(<span class="keywordtype">double</span> damage, <a class="code" href="class_shot.html">Shot</a>* shot, <span class="keywordtype">int</span> hit_type, <a class="code" href="struct_point.html">Point</a> impact)</div>
<div class="line"><a name="l04493"></a><span class="lineno"> 4493</span>&#160;{</div>
<div class="line"><a name="l04494"></a><span class="lineno"> 4494</span>&#160;        <span class="keywordtype">double</span> damage_applied = 0;</div>
<div class="line"><a name="l04495"></a><span class="lineno"> 4495</span>&#160;</div>
<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_game.html#a7565bb8df0532d4f1ddc82229d13a016">Game::Paused</a>() || <a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>() || <a class="code" href="class_ship.html#a606d8fe3b2636e3edd05d4a3e4bfbe12">IsInvulnerable</a>())</div>
<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160;        <span class="keywordflow">return</span> damage_applied;</div>
<div class="line"><a name="l04498"></a><span class="lineno"> 4498</span>&#160;</div>
<div class="line"><a name="l04499"></a><span class="lineno"> 4499</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#ad665e179e85f6d2f19536cf54b7f03a5">Integrity</a>() == 0) <span class="comment">// already dead?</span></div>
<div class="line"><a name="l04500"></a><span class="lineno"> 4500</span>&#160;        <span class="keywordflow">return</span> damage_applied;</div>
<div class="line"><a name="l04501"></a><span class="lineno"> 4501</span>&#160;</div>
<div class="line"><a name="l04502"></a><span class="lineno"> 4502</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">double</span>   MAX_SHAKE   = 7;</div>
<div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>&#160;        <span class="keywordtype">double</span>         hull_damage = damage;</div>
<div class="line"><a name="l04504"></a><span class="lineno"> 4504</span>&#160;        <span class="keywordtype">bool</span>           hit_shield  = (hit_type &amp; <a class="code" href="_ship_8cpp.html#ab1e609780b05305789918469626d198a">HIT_SHIELD</a>) != 0;</div>
<div class="line"><a name="l04505"></a><span class="lineno"> 4505</span>&#160;        <span class="keywordtype">bool</span>           hit_hull    = (hit_type &amp; <a class="code" href="_ship_8cpp.html#a95e12dbf425cb112193e5854f978d5fe">HIT_HULL</a>)   != 0;</div>
<div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>&#160;        <span class="keywordtype">bool</span>           hit_turret  = (hit_type &amp; <a class="code" href="_ship_8cpp.html#a6a4f38ffba8bb35bea54f4670f5b9045">HIT_TURRET</a>) != 0;</div>
<div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>&#160;</div>
<div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>&#160;        <span class="keywordflow">if</span> (impact == <a class="code" href="struct_point.html">Point</a>(0,0,0))</div>
<div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>&#160;        impact = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l04510"></a><span class="lineno"> 4510</span>&#160;</div>
<div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>&#160;        <span class="keywordflow">if</span> (hit_shield &amp;&amp; <a class="code" href="class_ship.html#a06991e72c4adc3bec1ce731b92649ef4">ShieldStrength</a>() &gt; 0) {</div>
<div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>&#160;                hull_damage = <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_shield.html#a274b101564c2e33481ffbaf2887c87e9">DeflectDamage</a>(shot, damage);</div>
<div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>&#160;</div>
<div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>&#160;                <span class="keywordflow">if</span> (shot) {</div>
<div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>&#160;                        <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#a15f636f9c361fb08ea3c4e95db14ed53">IsBeam</a>()) {</div>
<div class="line"><a name="l04516"></a><span class="lineno"> 4516</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a538b0638a13ca1688cfa0265675e2f59">beam_hit_sound_resource</a>) {</div>
<div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>&#160;                                        <span class="keywordflow">if</span> (<a class="code" href="class_game.html#a321790057c657d52f3585f883cdbc507">Game::RealTime</a>() - <a class="code" href="class_ship.html#a4a04b942f388ecdf539c089faf3c3636">last_beam_time</a> &gt; 400) {</div>
<div class="line"><a name="l04518"></a><span class="lineno"> 4518</span>&#160;                                                <a class="code" href="class_sound.html">Sound</a>* s = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a538b0638a13ca1688cfa0265675e2f59">beam_hit_sound_resource</a>-&gt;<a class="code" href="class_sound.html#a0c637966828cf1c533e2e81777e3db28">Duplicate</a>();</div>
<div class="line"><a name="l04519"></a><span class="lineno"> 4519</span>&#160;                                                s-&gt;<a class="code" href="class_sound.html#af785bc3312cea95e18a526189afadb3e">SetLocation</a>(impact);</div>
<div class="line"><a name="l04520"></a><span class="lineno"> 4520</span>&#160;                                                s-&gt;<a class="code" href="class_sound.html#a2efe8c781dd8e065d5cd1cd70e361b7e">SetVolume</a>(<a class="code" href="class_audio_config.html#a97ed1baee55fd31f1fac4a784b67d9b7">AudioConfig::EfxVolume</a>());</div>
<div class="line"><a name="l04521"></a><span class="lineno"> 4521</span>&#160;                                                s-&gt;<a class="code" href="class_sound.html#ae24d17b1583f2080589eb91d350106fc">Play</a>();</div>
<div class="line"><a name="l04522"></a><span class="lineno"> 4522</span>&#160;</div>
<div class="line"><a name="l04523"></a><span class="lineno"> 4523</span>&#160;                                                <a class="code" href="class_ship.html#a4a04b942f388ecdf539c089faf3c3636">last_beam_time</a> = <a class="code" href="class_game.html#a321790057c657d52f3585f883cdbc507">Game::RealTime</a>();</div>
<div class="line"><a name="l04524"></a><span class="lineno"> 4524</span>&#160;                                        }</div>
<div class="line"><a name="l04525"></a><span class="lineno"> 4525</span>&#160;                                }</div>
<div class="line"><a name="l04526"></a><span class="lineno"> 4526</span>&#160;                        }</div>
<div class="line"><a name="l04527"></a><span class="lineno"> 4527</span>&#160;</div>
<div class="line"><a name="l04528"></a><span class="lineno"> 4528</span>&#160;                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l04529"></a><span class="lineno"> 4529</span>&#160;                                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a5764f861f80f873a57a3a9f068671ded">bolt_hit_sound_resource</a>) {</div>
<div class="line"><a name="l04530"></a><span class="lineno"> 4530</span>&#160;                                        <span class="keywordflow">if</span> (<a class="code" href="class_game.html#a321790057c657d52f3585f883cdbc507">Game::RealTime</a>() - <a class="code" href="class_ship.html#a62d7f8a05864bec07e22b9cab0a7bc7a">last_bolt_time</a> &gt; 400) {</div>
<div class="line"><a name="l04531"></a><span class="lineno"> 4531</span>&#160;                                                <a class="code" href="class_sound.html">Sound</a>* s = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a5764f861f80f873a57a3a9f068671ded">bolt_hit_sound_resource</a>-&gt;<a class="code" href="class_sound.html#a0c637966828cf1c533e2e81777e3db28">Duplicate</a>();</div>
<div class="line"><a name="l04532"></a><span class="lineno"> 4532</span>&#160;                                                s-&gt;<a class="code" href="class_sound.html#af785bc3312cea95e18a526189afadb3e">SetLocation</a>(impact);</div>
<div class="line"><a name="l04533"></a><span class="lineno"> 4533</span>&#160;                                                s-&gt;<a class="code" href="class_sound.html#a2efe8c781dd8e065d5cd1cd70e361b7e">SetVolume</a>(<a class="code" href="class_audio_config.html#a97ed1baee55fd31f1fac4a784b67d9b7">AudioConfig::EfxVolume</a>());</div>
<div class="line"><a name="l04534"></a><span class="lineno"> 4534</span>&#160;                                                s-&gt;<a class="code" href="class_sound.html#ae24d17b1583f2080589eb91d350106fc">Play</a>();</div>
<div class="line"><a name="l04535"></a><span class="lineno"> 4535</span>&#160;</div>
<div class="line"><a name="l04536"></a><span class="lineno"> 4536</span>&#160;                                                <a class="code" href="class_ship.html#a62d7f8a05864bec07e22b9cab0a7bc7a">last_bolt_time</a> = <a class="code" href="class_game.html#a321790057c657d52f3585f883cdbc507">Game::RealTime</a>();</div>
<div class="line"><a name="l04537"></a><span class="lineno"> 4537</span>&#160;                                        }</div>
<div class="line"><a name="l04538"></a><span class="lineno"> 4538</span>&#160;                                }</div>
<div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>&#160;                        }</div>
<div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>&#160;                }</div>
<div class="line"><a name="l04541"></a><span class="lineno"> 4541</span>&#160;        }</div>
<div class="line"><a name="l04542"></a><span class="lineno"> 4542</span>&#160;</div>
<div class="line"><a name="l04543"></a><span class="lineno"> 4543</span>&#160;        <span class="keywordflow">if</span> (hit_hull) {</div>
<div class="line"><a name="l04544"></a><span class="lineno"> 4544</span>&#160;                hull_damage = <a class="code" href="class_ship.html#a66befda14a812c43cdcfc06ac8f671bd">InflictSystemDamage</a>(hull_damage, shot, impact);</div>
<div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>&#160;</div>
<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160;                <span class="keywordtype">int</span> damage_type = <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a3f1269bb215959df3dee891c711446aa">WeaponDesign::DMG_NORMAL</a>;</div>
<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160;</div>
<div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>&#160;                <span class="keywordflow">if</span> (shot &amp;&amp; shot-&gt;<a class="code" href="class_shot.html#a04cfc616a35edaf4081e313aa0fc16a5">Design</a>())</div>
<div class="line"><a name="l04549"></a><span class="lineno"> 4549</span>&#160;                damage_type = shot-&gt;<a class="code" href="class_shot.html#a04cfc616a35edaf4081e313aa0fc16a5">Design</a>()-&gt;<a class="code" href="class_weapon_design.html#adfcf72e7f4be4c3313c84c51b1829f10">damage_type</a>;</div>
<div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>&#160;</div>
<div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>&#160;                <span class="keywordflow">if</span> (damage_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a3f1269bb215959df3dee891c711446aa">WeaponDesign::DMG_NORMAL</a>) {</div>
<div class="line"><a name="l04552"></a><span class="lineno"> 4552</span>&#160;                        damage_applied = hull_damage;</div>
<div class="line"><a name="l04553"></a><span class="lineno"> 4553</span>&#160;                        <a class="code" href="class_ship.html#a6740677249996feee8b8bbed9ad884b9">Physical::InflictDamage</a>(damage_applied, 0);</div>
<div class="line"><a name="l04554"></a><span class="lineno"> 4554</span>&#160;                        <a class="code" href="class_net_util.html#a71ffbec84518f88bb07f5a79d8e6a6e0">NetUtil::SendObjDamage</a>(<span class="keyword">this</span>, damage_applied, shot);</div>
<div class="line"><a name="l04555"></a><span class="lineno"> 4555</span>&#160;                }</div>
<div class="line"><a name="l04556"></a><span class="lineno"> 4556</span>&#160;        }</div>
<div class="line"><a name="l04557"></a><span class="lineno"> 4557</span>&#160;</div>
<div class="line"><a name="l04558"></a><span class="lineno"> 4558</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (hit_turret) {</div>
<div class="line"><a name="l04559"></a><span class="lineno"> 4559</span>&#160;                hull_damage = <a class="code" href="class_ship.html#a66befda14a812c43cdcfc06ac8f671bd">InflictSystemDamage</a>(hull_damage, shot, impact) * 0.3;</div>
<div class="line"><a name="l04560"></a><span class="lineno"> 4560</span>&#160;</div>
<div class="line"><a name="l04561"></a><span class="lineno"> 4561</span>&#160;                <span class="keywordtype">int</span> damage_type = <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a3f1269bb215959df3dee891c711446aa">WeaponDesign::DMG_NORMAL</a>;</div>
<div class="line"><a name="l04562"></a><span class="lineno"> 4562</span>&#160;</div>
<div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>&#160;                <span class="keywordflow">if</span> (shot &amp;&amp; shot-&gt;<a class="code" href="class_shot.html#a04cfc616a35edaf4081e313aa0fc16a5">Design</a>())</div>
<div class="line"><a name="l04564"></a><span class="lineno"> 4564</span>&#160;                damage_type = shot-&gt;<a class="code" href="class_shot.html#a04cfc616a35edaf4081e313aa0fc16a5">Design</a>()-&gt;<a class="code" href="class_weapon_design.html#adfcf72e7f4be4c3313c84c51b1829f10">damage_type</a>;</div>
<div class="line"><a name="l04565"></a><span class="lineno"> 4565</span>&#160;</div>
<div class="line"><a name="l04566"></a><span class="lineno"> 4566</span>&#160;                <span class="keywordflow">if</span> (damage_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a3f1269bb215959df3dee891c711446aa">WeaponDesign::DMG_NORMAL</a>) {</div>
<div class="line"><a name="l04567"></a><span class="lineno"> 4567</span>&#160;                        damage_applied = hull_damage;</div>
<div class="line"><a name="l04568"></a><span class="lineno"> 4568</span>&#160;                        <a class="code" href="class_ship.html#a6740677249996feee8b8bbed9ad884b9">Physical::InflictDamage</a>(damage_applied, 0);</div>
<div class="line"><a name="l04569"></a><span class="lineno"> 4569</span>&#160;                        <a class="code" href="class_net_util.html#a71ffbec84518f88bb07f5a79d8e6a6e0">NetUtil::SendObjDamage</a>(<span class="keyword">this</span>, damage_applied, shot);</div>
<div class="line"><a name="l04570"></a><span class="lineno"> 4570</span>&#160;                }</div>
<div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>&#160;        }</div>
<div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>&#160;</div>
<div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>&#160;        <span class="comment">// shake by percentage of maximum damage</span></div>
<div class="line"><a name="l04574"></a><span class="lineno"> 4574</span>&#160;        <span class="keywordtype">double</span> newshake = 50 * damage/<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af112b5efa577088b7ccbde199c2bb535">integrity</a>;</div>
<div class="line"><a name="l04575"></a><span class="lineno"> 4575</span>&#160;</div>
<div class="line"><a name="l04576"></a><span class="lineno"> 4576</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a> &lt; MAX_SHAKE)  <a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a> += (float) newshake;</div>
<div class="line"><a name="l04577"></a><span class="lineno"> 4577</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a> &gt; MAX_SHAKE)  <a class="code" href="class_physical.html#acb24f3d7c5ee7743da91e2578bd984f2">shake</a>  = (float) MAX_SHAKE;</div>
<div class="line"><a name="l04578"></a><span class="lineno"> 4578</span>&#160;</div>
<div class="line"><a name="l04579"></a><span class="lineno"> 4579</span>&#160;        <span class="comment">// start fires as needed:</span></div>
<div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>&#160;        <span class="keywordflow">if</span> ((<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>() || <a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">IsGroundUnit</a>() || <a class="code" href="_random_8cpp.html#ab7aa8072e0a15ac7d38090d4b8a6cf6f">RandomChance</a>(1,3)) &amp;&amp; hit_hull &amp;&amp; damage_applied &gt; 0) {</div>
<div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>&#160;                <span class="keywordtype">int</span> old_integrity = (int) ((<a class="code" href="class_physical.html#a8e2b75659beeba7ed86a6f1199260c1c">integrity</a> + damage_applied)/<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af112b5efa577088b7ccbde199c2bb535">integrity</a> * 10);</div>
<div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>&#160;                <span class="keywordtype">int</span> new_integrity = (int) ((<a class="code" href="class_physical.html#a8e2b75659beeba7ed86a6f1199260c1c">integrity</a>                 )/<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af112b5efa577088b7ccbde199c2bb535">integrity</a> * 10);</div>
<div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>&#160;</div>
<div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>&#160;                <span class="keywordflow">if</span> (new_integrity &lt; 5 &amp;&amp; new_integrity &lt; old_integrity) {</div>
<div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>&#160;                        <span class="comment">// need accurate hull impact for starships,</span></div>
<div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>) {</div>
<div class="line"><a name="l04587"></a><span class="lineno"> 4587</span>&#160;                                <a class="code" href="struct_point.html">Point</a>  detonation = impact*2 - <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>();</div>
<div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>&#160;                                <a class="code" href="struct_point.html">Point</a>  direction  = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() - detonation;</div>
<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160;                                <span class="keywordtype">double</span> distance   = direction.<a class="code" href="struct_point.html#a6efd403e2a6c0aa686e278d244d5e525">Normalize</a>() * 3;</div>
<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160;                                <a class="code" href="class_physical.html#a3adbf31fe8d940401e6b12ccb275432e">rep</a>-&gt;<a class="code" href="class_graphic.html#a21666bd4f981a86fd5691fba9288d121">CheckRayIntersection</a>(detonation, direction, distance, impact);</div>
<div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>&#160;</div>
<div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>&#160;                                <span class="comment">// pull fire back into hull a bit:</span></div>
<div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>&#160;                                direction = <a class="code" href="class_physical.html#a18d7b806f29edde8af178ae9a6d0ad90">Location</a>() - impact;</div>
<div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>&#160;                                impact += direction * 0.2;</div>
<div class="line"><a name="l04595"></a><span class="lineno"> 4595</span>&#160;</div>
<div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>&#160;                                <span class="keywordtype">float</span> scale = (float) <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a926ba36ba08ffa6af1d2ee939b562f5a">scale</a>;</div>
<div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>&#160;</div>
<div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>&#160;                                if (<a class="code" href="class_ship.html#af24832b308e7b0abfbb4af4043b3a060">IsDropship</a>())</div>
<div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>&#160;                                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a8ce96cc9b87c0f63cbba6154240006a9">Explosion::SMOKE_TRAIL</a>, 0.01f * scale, 0.5f * scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>, <span class="keyword">this</span>);</div>
<div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>&#160;                                <span class="keywordflow">else</span></div>
<div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>&#160;                                <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(impact, <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>(), <a class="code" href="class_explosion.html#a7eeb34fbe7487028b0ab617c366f8989a2569d22469f3fac939f5f2061f3f1a03">Explosion::HULL_FIRE</a>,   0.10f * scale,        scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>, <span class="keyword">this</span>);</div>
<div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>&#160;                        }</div>
<div class="line"><a name="l04603"></a><span class="lineno"> 4603</span>&#160;                }</div>
<div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>&#160;        }</div>
<div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>&#160;</div>
<div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>&#160;        <span class="keywordflow">return</span> damage_applied;</div>
<div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>&#160;}</div>
<div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>&#160;</div>
<div class="line"><a name="l04609"></a><span class="lineno"> 4609</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l04610"></a><span class="lineno"><a class="code" href="class_ship.html#a66befda14a812c43cdcfc06ac8f671bd"> 4610</a></span>&#160;<a class="code" href="class_ship.html#a66befda14a812c43cdcfc06ac8f671bd">Ship::InflictSystemDamage</a>(<span class="keywordtype">double</span> damage, <a class="code" href="class_shot.html">Shot</a>* shot, <a class="code" href="struct_point.html">Point</a> impact)</div>
<div class="line"><a name="l04611"></a><span class="lineno"> 4611</span>&#160;{</div>
<div class="line"><a name="l04612"></a><span class="lineno"> 4612</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a75e6a96c02947ec94ad6d7f740bce56b">IsNetObserver</a>())</div>
<div class="line"><a name="l04613"></a><span class="lineno"> 4613</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04614"></a><span class="lineno"> 4614</span>&#160;</div>
<div class="line"><a name="l04615"></a><span class="lineno"> 4615</span>&#160;        <span class="comment">// find the system that is closest to the impact point:</span></div>
<div class="line"><a name="l04616"></a><span class="lineno"> 4616</span>&#160;        <a class="code" href="class_system.html">System</a>* system       = 0;</div>
<div class="line"><a name="l04617"></a><span class="lineno"> 4617</span>&#160;        <span class="keywordtype">double</span>  distance     = 1e6;</div>
<div class="line"><a name="l04618"></a><span class="lineno"> 4618</span>&#160;        <span class="keywordtype">double</span>  blast_radius = 0;</div>
<div class="line"><a name="l04619"></a><span class="lineno"> 4619</span>&#160;        <span class="keywordtype">int</span>     dmg_type     = 0;</div>
<div class="line"><a name="l04620"></a><span class="lineno"> 4620</span>&#160;</div>
<div class="line"><a name="l04621"></a><span class="lineno"> 4621</span>&#160;        <span class="keywordflow">if</span> (shot)</div>
<div class="line"><a name="l04622"></a><span class="lineno"> 4622</span>&#160;        dmg_type = shot-&gt;<a class="code" href="class_shot.html#a04cfc616a35edaf4081e313aa0fc16a5">Design</a>()-&gt;<a class="code" href="class_weapon_design.html#adfcf72e7f4be4c3313c84c51b1829f10">damage_type</a>;</div>
<div class="line"><a name="l04623"></a><span class="lineno"> 4623</span>&#160;</div>
<div class="line"><a name="l04624"></a><span class="lineno"> 4624</span>&#160;        <span class="keywordtype">bool</span>    dmg_normal   = dmg_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a3f1269bb215959df3dee891c711446aa">WeaponDesign::DMG_NORMAL</a>;</div>
<div class="line"><a name="l04625"></a><span class="lineno"> 4625</span>&#160;        <span class="keywordtype">bool</span>    dmg_power    = dmg_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a62f6eac7fa7567f9b9dac476867911d9">WeaponDesign::DMG_POWER</a>;</div>
<div class="line"><a name="l04626"></a><span class="lineno"> 4626</span>&#160;        <span class="keywordtype">bool</span>    dmg_emp      = dmg_type == <a class="code" href="class_weapon_design.html#a9d9904cd54dbdd674f0db4bdc6d9f682a1a6c7c7a6f71715742a3bfba22b3fde9">WeaponDesign::DMG_EMP</a>;</div>
<div class="line"><a name="l04627"></a><span class="lineno"> 4627</span>&#160;        <span class="keywordtype">double</span>  to_level     = 0;</div>
<div class="line"><a name="l04628"></a><span class="lineno"> 4628</span>&#160;</div>
<div class="line"><a name="l04629"></a><span class="lineno"> 4629</span>&#160;        <span class="keywordflow">if</span> (dmg_power) {</div>
<div class="line"><a name="l04630"></a><span class="lineno"> 4630</span>&#160;                to_level = 1 - damage / 1e4;</div>
<div class="line"><a name="l04631"></a><span class="lineno"> 4631</span>&#160;</div>
<div class="line"><a name="l04632"></a><span class="lineno"> 4632</span>&#160;                <span class="keywordflow">if</span> (to_level &lt; 0)</div>
<div class="line"><a name="l04633"></a><span class="lineno"> 4633</span>&#160;                to_level = 0;</div>
<div class="line"><a name="l04634"></a><span class="lineno"> 4634</span>&#160;        }</div>
<div class="line"><a name="l04635"></a><span class="lineno"> 4635</span>&#160;</div>
<div class="line"><a name="l04636"></a><span class="lineno"> 4636</span>&#160;        <span class="comment">// damage caused by weapons applies to closest system:</span></div>
<div class="line"><a name="l04637"></a><span class="lineno"> 4637</span>&#160;        <span class="keywordflow">if</span> (shot) {</div>
<div class="line"><a name="l04638"></a><span class="lineno"> 4638</span>&#160;                <span class="keywordflow">if</span> (shot-&gt;<a class="code" href="class_shot.html#afb51286dcc48eebaf872a4b6b8d377f7">IsMissile</a>())</div>
<div class="line"><a name="l04639"></a><span class="lineno"> 4639</span>&#160;                blast_radius   = 300;</div>
<div class="line"><a name="l04640"></a><span class="lineno"> 4640</span>&#160;</div>
<div class="line"><a name="l04641"></a><span class="lineno"> 4641</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l04642"></a><span class="lineno"> 4642</span>&#160;                <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l04643"></a><span class="lineno"> 4643</span>&#160;                        <a class="code" href="class_system.html">System</a>* candidate = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l04644"></a><span class="lineno"> 4644</span>&#160;                        <span class="keywordtype">double</span>  sysrad    = candidate-&gt;<a class="code" href="class_system.html#adadfaadbdde48c7442cbd92aa60a18dc">Radius</a>();</div>
<div class="line"><a name="l04645"></a><span class="lineno"> 4645</span>&#160;</div>
<div class="line"><a name="l04646"></a><span class="lineno"> 4646</span>&#160;                        <span class="keywordflow">if</span> (dmg_power)</div>
<div class="line"><a name="l04647"></a><span class="lineno"> 4647</span>&#160;                        candidate-&gt;<a class="code" href="class_system.html#a9f23162f7f0f168bdc3251b94017cff7">DrainPower</a>(to_level);</div>
<div class="line"><a name="l04648"></a><span class="lineno"> 4648</span>&#160;</div>
<div class="line"><a name="l04649"></a><span class="lineno"> 4649</span>&#160;                        <span class="keywordflow">if</span> (sysrad &gt; 0 || dmg_emp &amp;&amp; candidate-&gt;<a class="code" href="class_system.html#aaefaa9a8cda3196c9fd22b1a1c4066bc">IsPowerCritical</a>()) {</div>
<div class="line"><a name="l04650"></a><span class="lineno"> 4650</span>&#160;                                <span class="keywordtype">double</span> test_distance = (impact - candidate-&gt;<a class="code" href="class_system.html#a49fc8091a7770e9b59b80157f49cfd02">MountLocation</a>()).length();</div>
<div class="line"><a name="l04651"></a><span class="lineno"> 4651</span>&#160;</div>
<div class="line"><a name="l04652"></a><span class="lineno"> 4652</span>&#160;                                <span class="keywordflow">if</span> ((test_distance-blast_radius) &lt; sysrad || dmg_emp &amp;&amp; candidate-&gt;<a class="code" href="class_system.html#aaefaa9a8cda3196c9fd22b1a1c4066bc">IsPowerCritical</a>()) {</div>
<div class="line"><a name="l04653"></a><span class="lineno"> 4653</span>&#160;                                        <span class="keywordflow">if</span> (test_distance &lt; distance) {</div>
<div class="line"><a name="l04654"></a><span class="lineno"> 4654</span>&#160;                                                system   = candidate;</div>
<div class="line"><a name="l04655"></a><span class="lineno"> 4655</span>&#160;                                                distance = test_distance;</div>
<div class="line"><a name="l04656"></a><span class="lineno"> 4656</span>&#160;                                        }</div>
<div class="line"><a name="l04657"></a><span class="lineno"> 4657</span>&#160;                                }</div>
<div class="line"><a name="l04658"></a><span class="lineno"> 4658</span>&#160;                        }</div>
<div class="line"><a name="l04659"></a><span class="lineno"> 4659</span>&#160;                }  </div>
<div class="line"><a name="l04660"></a><span class="lineno"> 4660</span>&#160;</div>
<div class="line"><a name="l04661"></a><span class="lineno"> 4661</span>&#160;                <span class="comment">// if a system was in range of the blast, assess the damage:</span></div>
<div class="line"><a name="l04662"></a><span class="lineno"> 4662</span>&#160;                <span class="keywordflow">if</span> (system) {</div>
<div class="line"><a name="l04663"></a><span class="lineno"> 4663</span>&#160;                        <span class="keywordtype">double</span> hull_damage = damage * system-&gt;<a class="code" href="class_system.html#a22dac27e47c7da8caff5f6ef57d3f9ed">HullProtection</a>();</div>
<div class="line"><a name="l04664"></a><span class="lineno"> 4664</span>&#160;                        <span class="keywordtype">double</span> sys_damage  = damage - hull_damage;</div>
<div class="line"><a name="l04665"></a><span class="lineno"> 4665</span>&#160;                        <span class="keywordtype">double</span> avail       = system-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>();</div>
<div class="line"><a name="l04666"></a><span class="lineno"> 4666</span>&#160;</div>
<div class="line"><a name="l04667"></a><span class="lineno"> 4667</span>&#160;                        <span class="keywordflow">if</span> (dmg_normal || system-&gt;<a class="code" href="class_system.html#aaefaa9a8cda3196c9fd22b1a1c4066bc">IsPowerCritical</a>() &amp;&amp; dmg_emp) {</div>
<div class="line"><a name="l04668"></a><span class="lineno"> 4668</span>&#160;                                system-&gt;<a class="code" href="class_system.html#a3f69f147467995360bf6c32f9b9509c5">ApplyDamage</a>(sys_damage);</div>
<div class="line"><a name="l04669"></a><span class="lineno"> 4669</span>&#160;                                <a class="code" href="class_net_util.html#a2ebfee54e83a94ae3b1cc586a7a93efd">NetUtil::SendSysDamage</a>(<span class="keyword">this</span>, system, sys_damage);</div>
<div class="line"><a name="l04670"></a><span class="lineno"> 4670</span>&#160;</div>
<div class="line"><a name="l04671"></a><span class="lineno"> 4671</span>&#160;                                <a class="code" href="class_ship.html#a3e7aa479953ffd51241007d61de1fe27">master_caution</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l04672"></a><span class="lineno"> 4672</span>&#160;</div>
<div class="line"><a name="l04673"></a><span class="lineno"> 4673</span>&#160;                                <span class="keywordflow">if</span> (dmg_normal) {</div>
<div class="line"><a name="l04674"></a><span class="lineno"> 4674</span>&#160;                                        <span class="keywordflow">if</span> (sys_damage &lt; 100)</div>
<div class="line"><a name="l04675"></a><span class="lineno"> 4675</span>&#160;                                        damage -= sys_damage;</div>
<div class="line"><a name="l04676"></a><span class="lineno"> 4676</span>&#160;                                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l04677"></a><span class="lineno"> 4677</span>&#160;                                        damage -= 100;</div>
<div class="line"><a name="l04678"></a><span class="lineno"> 4678</span>&#160;                                }</div>
<div class="line"><a name="l04679"></a><span class="lineno"> 4679</span>&#160;</div>
<div class="line"><a name="l04680"></a><span class="lineno"> 4680</span>&#160;                                <span class="keywordflow">if</span> (system-&gt;<a class="code" href="class_system.html#a38fb35c30f8e01d4d5aa4574c34fbe2f">GetExplosionType</a>() &amp;&amp; (avail - system-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>()) &gt;= 50) {</div>
<div class="line"><a name="l04681"></a><span class="lineno"> 4681</span>&#160;                                        <span class="keywordtype">float</span> scale = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3aa65b313187ed5cc084097a0dac6490">explosion_scale</a>;</div>
<div class="line"><a name="l04682"></a><span class="lineno"> 4682</span>&#160;                                        <span class="keywordflow">if</span> (scale &lt;= 0)</div>
<div class="line"><a name="l04683"></a><span class="lineno"> 4683</span>&#160;                                        scale = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a926ba36ba08ffa6af1d2ee939b562f5a">scale</a>;</div>
<div class="line"><a name="l04684"></a><span class="lineno"> 4684</span>&#160;</div>
<div class="line"><a name="l04685"></a><span class="lineno"> 4685</span>&#160;                                        <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a8f5346837d72f71721dc1ce211852cf6">CreateExplosion</a>(system-&gt;<a class="code" href="class_system.html#a49fc8091a7770e9b59b80157f49cfd02">MountLocation</a>(), <a class="code" href="class_physical.html#a60c5e5f05f780f8accae363e9748131c">Velocity</a>() * 0.7f, system-&gt;<a class="code" href="class_system.html#a38fb35c30f8e01d4d5aa4574c34fbe2f">GetExplosionType</a>(), 0.2f * scale, scale, <a class="code" href="class_sim_object.html#ad157797b86f44e754880b3115e99ee2b">region</a>, <span class="keyword">this</span>, system);</div>
<div class="line"><a name="l04686"></a><span class="lineno"> 4686</span>&#160;                                }</div>
<div class="line"><a name="l04687"></a><span class="lineno"> 4687</span>&#160;                        }</div>
<div class="line"><a name="l04688"></a><span class="lineno"> 4688</span>&#160;                }</div>
<div class="line"><a name="l04689"></a><span class="lineno"> 4689</span>&#160;        }</div>
<div class="line"><a name="l04690"></a><span class="lineno"> 4690</span>&#160;</div>
<div class="line"><a name="l04691"></a><span class="lineno"> 4691</span>&#160;        <span class="comment">// damage caused by collision applies to all systems:</span></div>
<div class="line"><a name="l04692"></a><span class="lineno"> 4692</span>&#160;        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l04693"></a><span class="lineno"> 4693</span>&#160;                <span class="comment">// ignore incidental bumps:</span></div>
<div class="line"><a name="l04694"></a><span class="lineno"> 4694</span>&#160;                <span class="keywordflow">if</span> (damage &lt; 100)</div>
<div class="line"><a name="l04695"></a><span class="lineno"> 4695</span>&#160;                <span class="keywordflow">return</span> damage;</div>
<div class="line"><a name="l04696"></a><span class="lineno"> 4696</span>&#160;</div>
<div class="line"><a name="l04697"></a><span class="lineno"> 4697</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l04698"></a><span class="lineno"> 4698</span>&#160;                <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l04699"></a><span class="lineno"> 4699</span>&#160;                        <a class="code" href="class_system.html">System</a>* sys = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l04700"></a><span class="lineno"> 4700</span>&#160;</div>
<div class="line"><a name="l04701"></a><span class="lineno"> 4701</span>&#160;                        <span class="keywordflow">if</span> (rand() &gt; 24000) {</div>
<div class="line"><a name="l04702"></a><span class="lineno"> 4702</span>&#160;                                <span class="keywordtype">double</span> base_damage = 33.0 + rand()/1000.0;</div>
<div class="line"><a name="l04703"></a><span class="lineno"> 4703</span>&#160;                                <span class="keywordtype">double</span> sys_damage  = base_damage * (1.0 - sys-&gt;<a class="code" href="class_system.html#a22dac27e47c7da8caff5f6ef57d3f9ed">HullProtection</a>());</div>
<div class="line"><a name="l04704"></a><span class="lineno"> 4704</span>&#160;                                sys-&gt;<a class="code" href="class_system.html#a3f69f147467995360bf6c32f9b9509c5">ApplyDamage</a>(sys_damage);</div>
<div class="line"><a name="l04705"></a><span class="lineno"> 4705</span>&#160;                                <a class="code" href="class_net_util.html#a2ebfee54e83a94ae3b1cc586a7a93efd">NetUtil::SendSysDamage</a>(<span class="keyword">this</span>, system, sys_damage);</div>
<div class="line"><a name="l04706"></a><span class="lineno"> 4706</span>&#160;                                damage -= sys_damage;</div>
<div class="line"><a name="l04707"></a><span class="lineno"> 4707</span>&#160;</div>
<div class="line"><a name="l04708"></a><span class="lineno"> 4708</span>&#160;                                <a class="code" href="class_ship.html#a3e7aa479953ffd51241007d61de1fe27">master_caution</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l04709"></a><span class="lineno"> 4709</span>&#160;                        }</div>
<div class="line"><a name="l04710"></a><span class="lineno"> 4710</span>&#160;                }</div>
<div class="line"><a name="l04711"></a><span class="lineno"> 4711</span>&#160;</div>
<div class="line"><a name="l04712"></a><span class="lineno"> 4712</span>&#160;                <span class="comment">// just in case this ship has lots of systems...</span></div>
<div class="line"><a name="l04713"></a><span class="lineno"> 4713</span>&#160;                <span class="keywordflow">if</span> (damage &lt; 0)</div>
<div class="line"><a name="l04714"></a><span class="lineno"> 4714</span>&#160;                damage = 0;</div>
<div class="line"><a name="l04715"></a><span class="lineno"> 4715</span>&#160;        }</div>
<div class="line"><a name="l04716"></a><span class="lineno"> 4716</span>&#160;</div>
<div class="line"><a name="l04717"></a><span class="lineno"> 4717</span>&#160;        <span class="comment">// return damage remaining</span></div>
<div class="line"><a name="l04718"></a><span class="lineno"> 4718</span>&#160;        <span class="keywordflow">return</span> damage;</div>
<div class="line"><a name="l04719"></a><span class="lineno"> 4719</span>&#160;}</div>
<div class="line"><a name="l04720"></a><span class="lineno"> 4720</span>&#160;</div>
<div class="line"><a name="l04721"></a><span class="lineno"> 4721</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04722"></a><span class="lineno"> 4722</span>&#160;</div>
<div class="line"><a name="l04723"></a><span class="lineno"> 4723</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l04724"></a><span class="lineno"><a class="code" href="class_ship.html#a06991e72c4adc3bec1ce731b92649ef4"> 4724</a></span>&#160;<a class="code" href="class_ship.html#a06991e72c4adc3bec1ce731b92649ef4">Ship::ShieldStrength</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04725"></a><span class="lineno"> 4725</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04726"></a><span class="lineno"> 4726</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04727"></a><span class="lineno"> 4727</span>&#160;</div>
<div class="line"><a name="l04728"></a><span class="lineno"> 4728</span>&#160;        <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) <a class="code" href="class_ship.html#af40e994e40344e8cd92dd0a513699f90">shield</a>-&gt;<a class="code" href="class_shield.html#aa88ecc29cbbf80527bdf507635fd5735">ShieldLevel</a>();</div>
<div class="line"><a name="l04729"></a><span class="lineno"> 4729</span>&#160;}</div>
<div class="line"><a name="l04730"></a><span class="lineno"> 4730</span>&#160;</div>
<div class="line"><a name="l04731"></a><span class="lineno"> 4731</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l04732"></a><span class="lineno"><a class="code" href="class_ship.html#a91c47209ae5661196fc086e9bbcf22a3"> 4732</a></span>&#160;<a class="code" href="class_ship.html#a91c47209ae5661196fc086e9bbcf22a3">Ship::HullStrength</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l04733"></a><span class="lineno"> 4733</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l04734"></a><span class="lineno"> 4734</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>)</div>
<div class="line"><a name="l04735"></a><span class="lineno"> 4735</span>&#160;        <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) (<a class="code" href="class_physical.html#ad665e179e85f6d2f19536cf54b7f03a5">Integrity</a>() / <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#af112b5efa577088b7ccbde199c2bb535">integrity</a> * 100);</div>
<div class="line"><a name="l04736"></a><span class="lineno"> 4736</span>&#160;</div>
<div class="line"><a name="l04737"></a><span class="lineno"> 4737</span>&#160;        <span class="keywordflow">return</span> 10;</div>
<div class="line"><a name="l04738"></a><span class="lineno"> 4738</span>&#160;}</div>
<div class="line"><a name="l04739"></a><span class="lineno"> 4739</span>&#160;</div>
<div class="line"><a name="l04740"></a><span class="lineno"> 4740</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04741"></a><span class="lineno"> 4741</span>&#160;</div>
<div class="line"><a name="l04742"></a><span class="lineno"> 4742</span>&#160;<a class="code" href="class_system.html">System</a>*</div>
<div class="line"><a name="l04743"></a><span class="lineno"><a class="code" href="class_ship.html#a97ce3fd3783f434fec3d1c89adeda58e"> 4743</a></span>&#160;<a class="code" href="class_ship.html#a97ce3fd3783f434fec3d1c89adeda58e">Ship::GetSystem</a>(<span class="keywordtype">int</span> sys_id)</div>
<div class="line"><a name="l04744"></a><span class="lineno"> 4744</span>&#160;{</div>
<div class="line"><a name="l04745"></a><span class="lineno"> 4745</span>&#160;        <a class="code" href="class_system.html">System</a>* s = 0;</div>
<div class="line"><a name="l04746"></a><span class="lineno"> 4746</span>&#160;</div>
<div class="line"><a name="l04747"></a><span class="lineno"> 4747</span>&#160;        <span class="keywordflow">if</span> (sys_id &gt;= 0) {</div>
<div class="line"><a name="l04748"></a><span class="lineno"> 4748</span>&#160;                <span class="keywordflow">if</span> (sys_id &lt; <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>()) {</div>
<div class="line"><a name="l04749"></a><span class="lineno"> 4749</span>&#160;                        s = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>[sys_id];</div>
<div class="line"><a name="l04750"></a><span class="lineno"> 4750</span>&#160;                        <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_system.html#aa96c1cb17457508a53618afdab2f8304">GetID</a>() == sys_id)</div>
<div class="line"><a name="l04751"></a><span class="lineno"> 4751</span>&#160;                        <span class="keywordflow">return</span> s;</div>
<div class="line"><a name="l04752"></a><span class="lineno"> 4752</span>&#160;                }</div>
<div class="line"><a name="l04753"></a><span class="lineno"> 4753</span>&#160;</div>
<div class="line"><a name="l04754"></a><span class="lineno"> 4754</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l04755"></a><span class="lineno"> 4755</span>&#160;                <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l04756"></a><span class="lineno"> 4756</span>&#160;                        s = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l04757"></a><span class="lineno"> 4757</span>&#160;</div>
<div class="line"><a name="l04758"></a><span class="lineno"> 4758</span>&#160;                        <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_system.html#aa96c1cb17457508a53618afdab2f8304">GetID</a>() == sys_id)</div>
<div class="line"><a name="l04759"></a><span class="lineno"> 4759</span>&#160;                        <span class="keywordflow">return</span> s;</div>
<div class="line"><a name="l04760"></a><span class="lineno"> 4760</span>&#160;                }</div>
<div class="line"><a name="l04761"></a><span class="lineno"> 4761</span>&#160;        }</div>
<div class="line"><a name="l04762"></a><span class="lineno"> 4762</span>&#160;</div>
<div class="line"><a name="l04763"></a><span class="lineno"> 4763</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l04764"></a><span class="lineno"> 4764</span>&#160;}</div>
<div class="line"><a name="l04765"></a><span class="lineno"> 4765</span>&#160;</div>
<div class="line"><a name="l04766"></a><span class="lineno"> 4766</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04767"></a><span class="lineno"> 4767</span>&#160;</div>
<div class="line"><a name="l04768"></a><span class="lineno"> 4768</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04769"></a><span class="lineno"><a class="code" href="class_ship.html#a4bceaa5cb15448a37b12c846bb22e651"> 4769</a></span>&#160;<a class="code" href="class_ship.html#a4bceaa5cb15448a37b12c846bb22e651">Ship::RepairSystem</a>(<a class="code" href="class_system.html">System</a>* sys)</div>
<div class="line"><a name="l04770"></a><span class="lineno"> 4770</span>&#160;{</div>
<div class="line"><a name="l04771"></a><span class="lineno"> 4771</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a191e00bc07b79de1075cb41c9d6702cf">contains</a>(sys)) {</div>
<div class="line"><a name="l04772"></a><span class="lineno"> 4772</span>&#160;                <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(sys);</div>
<div class="line"><a name="l04773"></a><span class="lineno"> 4773</span>&#160;                sys-&gt;<a class="code" href="class_system.html#ad36656caf7e4b7995fa509c256651c60">Repair</a>();</div>
<div class="line"><a name="l04774"></a><span class="lineno"> 4774</span>&#160;        }</div>
<div class="line"><a name="l04775"></a><span class="lineno"> 4775</span>&#160;}</div>
<div class="line"><a name="l04776"></a><span class="lineno"> 4776</span>&#160;</div>
<div class="line"><a name="l04777"></a><span class="lineno"> 4777</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04778"></a><span class="lineno"> 4778</span>&#160;</div>
<div class="line"><a name="l04779"></a><span class="lineno"> 4779</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04780"></a><span class="lineno"><a class="code" href="class_ship.html#ad7ad596f54ba3b85b6fcd440dd2d1cf7"> 4780</a></span>&#160;<a class="code" href="class_ship.html#ad7ad596f54ba3b85b6fcd440dd2d1cf7">Ship::IncreaseRepairPriority</a>(<span class="keywordtype">int</span> task_index)</div>
<div class="line"><a name="l04781"></a><span class="lineno"> 4781</span>&#160;{</div>
<div class="line"><a name="l04782"></a><span class="lineno"> 4782</span>&#160;        <span class="keywordflow">if</span> (task_index &gt; 0 &amp;&amp; task_index &lt; <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>()) {</div>
<div class="line"><a name="l04783"></a><span class="lineno"> 4783</span>&#160;                <a class="code" href="class_system.html">System</a>* task1 = <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index-1);</div>
<div class="line"><a name="l04784"></a><span class="lineno"> 4784</span>&#160;                <a class="code" href="class_system.html">System</a>* task2 = <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index);</div>
<div class="line"><a name="l04785"></a><span class="lineno"> 4785</span>&#160;</div>
<div class="line"><a name="l04786"></a><span class="lineno"> 4786</span>&#160;                <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index-1) = task2;</div>
<div class="line"><a name="l04787"></a><span class="lineno"> 4787</span>&#160;                <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index)   = task1;</div>
<div class="line"><a name="l04788"></a><span class="lineno"> 4788</span>&#160;        }</div>
<div class="line"><a name="l04789"></a><span class="lineno"> 4789</span>&#160;}</div>
<div class="line"><a name="l04790"></a><span class="lineno"> 4790</span>&#160;</div>
<div class="line"><a name="l04791"></a><span class="lineno"> 4791</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04792"></a><span class="lineno"><a class="code" href="class_ship.html#a48c167db73a69dd2b3f86b7eb91ecb43"> 4792</a></span>&#160;<a class="code" href="class_ship.html#a48c167db73a69dd2b3f86b7eb91ecb43">Ship::DecreaseRepairPriority</a>(<span class="keywordtype">int</span> task_index)</div>
<div class="line"><a name="l04793"></a><span class="lineno"> 4793</span>&#160;{</div>
<div class="line"><a name="l04794"></a><span class="lineno"> 4794</span>&#160;        <span class="keywordflow">if</span> (task_index &gt;= 0 &amp;&amp; task_index &lt; <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>()-1) {</div>
<div class="line"><a name="l04795"></a><span class="lineno"> 4795</span>&#160;                <a class="code" href="class_system.html">System</a>* task1 = <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index);</div>
<div class="line"><a name="l04796"></a><span class="lineno"> 4796</span>&#160;                <a class="code" href="class_system.html">System</a>* task2 = <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index+1);</div>
<div class="line"><a name="l04797"></a><span class="lineno"> 4797</span>&#160;</div>
<div class="line"><a name="l04798"></a><span class="lineno"> 4798</span>&#160;                <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index)   = task2;</div>
<div class="line"><a name="l04799"></a><span class="lineno"> 4799</span>&#160;                <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(task_index+1) = task1;</div>
<div class="line"><a name="l04800"></a><span class="lineno"> 4800</span>&#160;        }</div>
<div class="line"><a name="l04801"></a><span class="lineno"> 4801</span>&#160;}</div>
<div class="line"><a name="l04802"></a><span class="lineno"> 4802</span>&#160;</div>
<div class="line"><a name="l04803"></a><span class="lineno"> 4803</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04804"></a><span class="lineno"> 4804</span>&#160;</div>
<div class="line"><a name="l04805"></a><span class="lineno"> 4805</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04806"></a><span class="lineno"><a class="code" href="class_ship.html#ab1a3c9fb3307a31e05b1ca6d9f446220"> 4806</a></span>&#160;<a class="code" href="class_ship.html#ab1a3c9fb3307a31e05b1ca6d9f446220">Ship::ExecMaintFrame</a>(<span class="keywordtype">double</span> seconds)</div>
<div class="line"><a name="l04807"></a><span class="lineno"> 4807</span>&#160;{</div>
<div class="line"><a name="l04808"></a><span class="lineno"> 4808</span>&#160;        <span class="comment">// is it already too late?</span></div>
<div class="line"><a name="l04809"></a><span class="lineno"> 4809</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a6b8e2705ced511545378e49b14573fdc">life</a> == 0 || <a class="code" href="class_physical.html#a8e2b75659beeba7ed86a6f1199260c1c">integrity</a> &lt; 1) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l04810"></a><span class="lineno"> 4810</span>&#160;</div>
<div class="line"><a name="l04811"></a><span class="lineno"> 4811</span>&#160;        <span class="keyword">const</span>  DWORD REPAIR_FREQUENCY  = 5000;  <span class="comment">// once every five seconds</span></div>
<div class="line"><a name="l04812"></a><span class="lineno"> 4812</span>&#160;        <span class="keyword">static</span> DWORD last_repair_frame = 0;     <span class="comment">// one ship per game frame</span></div>
<div class="line"><a name="l04813"></a><span class="lineno"> 4813</span>&#160;</div>
<div class="line"><a name="l04814"></a><span class="lineno"> 4814</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a903658c1c9bbb81bf7b990c4f06866e5">auto_repair</a> &amp;&amp; </div>
<div class="line"><a name="l04815"></a><span class="lineno"> 4815</span>&#160;                        <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() - <a class="code" href="class_ship.html#af2d6dcaca6a7b8c2e6888485989d810c">last_repair_time</a> &gt; REPAIR_FREQUENCY &amp;&amp;</div>
<div class="line"><a name="l04816"></a><span class="lineno"> 4816</span>&#160;                        last_repair_frame != <a class="code" href="class_game.html#ae6e2f4be1af7243aa7eb8ad615eb3e06">Game::Frame</a>()) {</div>
<div class="line"><a name="l04817"></a><span class="lineno"> 4817</span>&#160;</div>
<div class="line"><a name="l04818"></a><span class="lineno"> 4818</span>&#160;                <a class="code" href="class_ship.html#af2d6dcaca6a7b8c2e6888485989d810c">last_repair_time</a>  = <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>();</div>
<div class="line"><a name="l04819"></a><span class="lineno"> 4819</span>&#160;                last_repair_frame = <a class="code" href="class_game.html#ae6e2f4be1af7243aa7eb8ad615eb3e06">Game::Frame</a>();</div>
<div class="line"><a name="l04820"></a><span class="lineno"> 4820</span>&#160;</div>
<div class="line"><a name="l04821"></a><span class="lineno"> 4821</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#a4d47955e3b70bfc5a02df9f81c0a8d0c">systems</a>;</div>
<div class="line"><a name="l04822"></a><span class="lineno"> 4822</span>&#160;                <span class="keywordflow">while</span> (++iter) {</div>
<div class="line"><a name="l04823"></a><span class="lineno"> 4823</span>&#160;                        <a class="code" href="class_system.html">System</a>* sys = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l04824"></a><span class="lineno"> 4824</span>&#160;</div>
<div class="line"><a name="l04825"></a><span class="lineno"> 4825</span>&#160;                        <span class="keywordflow">if</span> (sys-&gt;<a class="code" href="class_system.html#acc2d027a316b31ace051774e6cc70b1f">Status</a>() != <a class="code" href="class_system.html#a01ad7eea57f4a2799a0159f4c3c75b07abf13d09d965e1fe8442d821061a726af">System::NOMINAL</a>) {</div>
<div class="line"><a name="l04826"></a><span class="lineno"> 4826</span>&#160;                                <span class="keywordtype">bool</span> started_repairs = <span class="keyword">false</span>;</div>
<div class="line"><a name="l04827"></a><span class="lineno"> 4827</span>&#160;</div>
<div class="line"><a name="l04828"></a><span class="lineno"> 4828</span>&#160;                                <span class="comment">// emergency power routing:</span></div>
<div class="line"><a name="l04829"></a><span class="lineno"> 4829</span>&#160;                                <span class="keywordflow">if</span> (sys-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() == <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a026ee2e19b20d037399039e9342348e3">System::POWER_SOURCE</a> &amp;&amp; sys-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>() &lt; 33) {</div>
<div class="line"><a name="l04830"></a><span class="lineno"> 4830</span>&#160;                                        <a class="code" href="class_power_source.html">PowerSource</a>* src = (<a class="code" href="class_power_source.html">PowerSource</a>*) sys;</div>
<div class="line"><a name="l04831"></a><span class="lineno"> 4831</span>&#160;                                        <a class="code" href="class_power_source.html">PowerSource</a>* dst = 0;</div>
<div class="line"><a name="l04832"></a><span class="lineno"> 4832</span>&#160;</div>
<div class="line"><a name="l04833"></a><span class="lineno"> 4833</span>&#160;                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l04834"></a><span class="lineno"> 4834</span>&#160;                                                <a class="code" href="class_power_source.html">PowerSource</a>* pwr = <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[i];</div>
<div class="line"><a name="l04835"></a><span class="lineno"> 4835</span>&#160;</div>
<div class="line"><a name="l04836"></a><span class="lineno"> 4836</span>&#160;                                                <span class="keywordflow">if</span> (pwr != src &amp;&amp; pwr-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>() &gt; src-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>()) {</div>
<div class="line"><a name="l04837"></a><span class="lineno"> 4837</span>&#160;                                                        <span class="keywordflow">if</span> (!dst || </div>
<div class="line"><a name="l04838"></a><span class="lineno"> 4838</span>&#160;                                                                        (pwr-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>() &gt; dst-&gt;<a class="code" href="class_system.html#ac9d35f8d2b2f3d9ca80a4ccea2fa0bf7">Availability</a>() &amp;&amp;</div>
<div class="line"><a name="l04839"></a><span class="lineno"> 4839</span>&#160;                                                                                pwr-&gt;<a class="code" href="class_power_source.html#a17b3ebb45f9f236dbabb8ffc2be5d3f4">Charge</a>()       &gt; dst-&gt;<a class="code" href="class_power_source.html#a17b3ebb45f9f236dbabb8ffc2be5d3f4">Charge</a>()))</div>
<div class="line"><a name="l04840"></a><span class="lineno"> 4840</span>&#160;                                                        dst = pwr;</div>
<div class="line"><a name="l04841"></a><span class="lineno"> 4841</span>&#160;                                                }</div>
<div class="line"><a name="l04842"></a><span class="lineno"> 4842</span>&#160;                                        }</div>
<div class="line"><a name="l04843"></a><span class="lineno"> 4843</span>&#160;</div>
<div class="line"><a name="l04844"></a><span class="lineno"> 4844</span>&#160;                                        <span class="keywordflow">if</span> (dst) {</div>
<div class="line"><a name="l04845"></a><span class="lineno"> 4845</span>&#160;                                                <span class="keywordflow">while</span> (src-&gt;<a class="code" href="class_power_source.html#a0d1d4623852db43525c3b10ca00ecede">Clients</a>().<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0) {</div>
<div class="line"><a name="l04846"></a><span class="lineno"> 4846</span>&#160;                                                        <a class="code" href="class_system.html">System</a>* s = src-&gt;<a class="code" href="class_power_source.html#a0d1d4623852db43525c3b10ca00ecede">Clients</a>().<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(0);</div>
<div class="line"><a name="l04847"></a><span class="lineno"> 4847</span>&#160;                                                        src-&gt;<a class="code" href="class_power_source.html#a54e64eed70609c53cfebc7b449a848c2">RemoveClient</a>(s);</div>
<div class="line"><a name="l04848"></a><span class="lineno"> 4848</span>&#160;                                                        dst-&gt;<a class="code" href="class_power_source.html#a59abc86f4802c51cfdbd0103240e8761">AddClient</a>(s);</div>
<div class="line"><a name="l04849"></a><span class="lineno"> 4849</span>&#160;                                                }</div>
<div class="line"><a name="l04850"></a><span class="lineno"> 4850</span>&#160;                                        }</div>
<div class="line"><a name="l04851"></a><span class="lineno"> 4851</span>&#160;                                }</div>
<div class="line"><a name="l04852"></a><span class="lineno"> 4852</span>&#160;</div>
<div class="line"><a name="l04853"></a><span class="lineno"> 4853</span>&#160;                                <a class="code" href="class_list_iter.html">ListIter&lt;Component&gt;</a> comp = sys-&gt;<a class="code" href="class_system.html#a4f4b4d23714503c6352dd613c539d8e1">GetComponents</a>();</div>
<div class="line"><a name="l04854"></a><span class="lineno"> 4854</span>&#160;                                <span class="keywordflow">while</span> (++comp) {</div>
<div class="line"><a name="l04855"></a><span class="lineno"> 4855</span>&#160;                                        <a class="code" href="class_component.html">Component</a>* c = comp.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l04856"></a><span class="lineno"> 4856</span>&#160;</div>
<div class="line"><a name="l04857"></a><span class="lineno"> 4857</span>&#160;                                        <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_component.html#a22ae23ae59ebad165999525293851b6b">Status</a>() &lt; <a class="code" href="class_component.html#aee687720a15ac9bcad0a5d682a5f7beea5031ea855152ed1341c6dabe0a3a265e">Component::NOMINAL</a> &amp;&amp; c-&gt;<a class="code" href="class_component.html#abf12d744bf994c6f7f4417ffafa8c9f9">Availability</a>() &lt; 75) {</div>
<div class="line"><a name="l04858"></a><span class="lineno"> 4858</span>&#160;                                                <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_component.html#a584bbff0cc482771a171f1b193e282af">SpareCount</a>()           &amp;&amp;</div>
<div class="line"><a name="l04859"></a><span class="lineno"> 4859</span>&#160;                                                                c-&gt;<a class="code" href="class_component.html#a0735cf6563d7df58140a5c583be03179">ReplaceTime</a>() &lt;= 300   &amp;&amp;</div>
<div class="line"><a name="l04860"></a><span class="lineno"> 4860</span>&#160;                                                                (c-&gt;<a class="code" href="class_component.html#abf12d744bf994c6f7f4417ffafa8c9f9">Availability</a>() &lt; 50 || </div>
<div class="line"><a name="l04861"></a><span class="lineno"> 4861</span>&#160;                                                                        c-&gt;<a class="code" href="class_component.html#a0735cf6563d7df58140a5c583be03179">ReplaceTime</a>()  &lt; c-&gt;<a class="code" href="class_component.html#a1662c2309c48b2d28438cb75cc1ed6cf">RepairTime</a>())) {</div>
<div class="line"><a name="l04862"></a><span class="lineno"> 4862</span>&#160;</div>
<div class="line"><a name="l04863"></a><span class="lineno"> 4863</span>&#160;                                                        c-&gt;<a class="code" href="class_component.html#a355b58f239ef8cff43129df25dc4aac8">Replace</a>();</div>
<div class="line"><a name="l04864"></a><span class="lineno"> 4864</span>&#160;                                                        started_repairs = <span class="keyword">true</span>;</div>
<div class="line"><a name="l04865"></a><span class="lineno"> 4865</span>&#160;                                                }</div>
<div class="line"><a name="l04866"></a><span class="lineno"> 4866</span>&#160;</div>
<div class="line"><a name="l04867"></a><span class="lineno"> 4867</span>&#160;                                                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c-&gt;<a class="code" href="class_component.html#abf12d744bf994c6f7f4417ffafa8c9f9">Availability</a>() &gt;= 50 || c-&gt;<a class="code" href="class_component.html#a73c5f23bbcf959e5be10fb0e918020aa">NumJerried</a>() &lt; 5) {</div>
<div class="line"><a name="l04868"></a><span class="lineno"> 4868</span>&#160;                                                        c-&gt;<a class="code" href="class_component.html#a19252c55056e52b7b18f2ebf74bf80bf">Repair</a>();</div>
<div class="line"><a name="l04869"></a><span class="lineno"> 4869</span>&#160;                                                        started_repairs = <span class="keyword">true</span>;</div>
<div class="line"><a name="l04870"></a><span class="lineno"> 4870</span>&#160;                                                }</div>
<div class="line"><a name="l04871"></a><span class="lineno"> 4871</span>&#160;                                        }</div>
<div class="line"><a name="l04872"></a><span class="lineno"> 4872</span>&#160;                                }</div>
<div class="line"><a name="l04873"></a><span class="lineno"> 4873</span>&#160;</div>
<div class="line"><a name="l04874"></a><span class="lineno"> 4874</span>&#160;                                <span class="keywordflow">if</span> (started_repairs)</div>
<div class="line"><a name="l04875"></a><span class="lineno"> 4875</span>&#160;                                <a class="code" href="class_ship.html#a4bceaa5cb15448a37b12c846bb22e651">RepairSystem</a>(sys);</div>
<div class="line"><a name="l04876"></a><span class="lineno"> 4876</span>&#160;                        }</div>
<div class="line"><a name="l04877"></a><span class="lineno"> 4877</span>&#160;                }</div>
<div class="line"><a name="l04878"></a><span class="lineno"> 4878</span>&#160;        }</div>
<div class="line"><a name="l04879"></a><span class="lineno"> 4879</span>&#160;</div>
<div class="line"><a name="l04880"></a><span class="lineno"> 4880</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>() &gt; 0 &amp;&amp; <a class="code" href="class_ship.html#a298912a2f12d6acc528baa564489a5df">RepairTeams</a>() &gt; 0) {</div>
<div class="line"><a name="l04881"></a><span class="lineno"> 4881</span>&#160;                <span class="keywordtype">int</span> team = 0;</div>
<div class="line"><a name="l04882"></a><span class="lineno"> 4882</span>&#160;                <a class="code" href="class_list_iter.html">ListIter&lt;System&gt;</a> iter = <a class="code" href="class_ship.html#ac3b6ace14f9122a442c3ee0f49d0971a">repair_queue</a>;</div>
<div class="line"><a name="l04883"></a><span class="lineno"> 4883</span>&#160;                <span class="keywordflow">while</span> (++iter &amp;&amp; team &lt; <a class="code" href="class_ship.html#a298912a2f12d6acc528baa564489a5df">RepairTeams</a>()) {</div>
<div class="line"><a name="l04884"></a><span class="lineno"> 4884</span>&#160;                        <a class="code" href="class_system.html">System</a>* sys = iter.<a class="code" href="class_list_iter.html#a70cb1260924c01a38c4a68552120a5e0">value</a>();</div>
<div class="line"><a name="l04885"></a><span class="lineno"> 4885</span>&#160;</div>
<div class="line"><a name="l04886"></a><span class="lineno"> 4886</span>&#160;                        sys-&gt;<a class="code" href="class_system.html#a6acb99feb824fbed5f29060d26c45961">ExecMaintFrame</a>(seconds * <a class="code" href="class_ship.html#a1421007da5f2377385f5ed2648bb5b2c">RepairSpeed</a>());</div>
<div class="line"><a name="l04887"></a><span class="lineno"> 4887</span>&#160;                        team++;</div>
<div class="line"><a name="l04888"></a><span class="lineno"> 4888</span>&#160;</div>
<div class="line"><a name="l04889"></a><span class="lineno"> 4889</span>&#160;                        <span class="keywordflow">if</span> (sys-&gt;<a class="code" href="class_system.html#acc2d027a316b31ace051774e6cc70b1f">Status</a>() != <a class="code" href="class_system.html#a01ad7eea57f4a2799a0159f4c3c75b07abaee8d3e97712781005e1037343479ec">System::MAINT</a>) {</div>
<div class="line"><a name="l04890"></a><span class="lineno"> 4890</span>&#160;                                iter.<a class="code" href="class_list_iter.html#ac39b155d0727d18bd89815c1a03d3a5b">removeItem</a>();</div>
<div class="line"><a name="l04891"></a><span class="lineno"> 4891</span>&#160;</div>
<div class="line"><a name="l04892"></a><span class="lineno"> 4892</span>&#160;                                <span class="comment">// emergency power routing (restore):</span></div>
<div class="line"><a name="l04893"></a><span class="lineno"> 4893</span>&#160;                                <span class="keywordflow">if</span> (sys-&gt;<a class="code" href="class_system.html#a27a7dfb1d5128bdedbcf4e3cff308bd1">Type</a>() == <a class="code" href="class_system.html#a9d5708955d867c8b08eaf27d79b097c2a026ee2e19b20d037399039e9342348e3">System::POWER_SOURCE</a> &amp;&amp; </div>
<div class="line"><a name="l04894"></a><span class="lineno"> 4894</span>&#160;                                                sys-&gt;<a class="code" href="class_system.html#acc2d027a316b31ace051774e6cc70b1f">Status</a>() == <a class="code" href="class_system.html#a01ad7eea57f4a2799a0159f4c3c75b07abf13d09d965e1fe8442d821061a726af">System::NOMINAL</a>) {</div>
<div class="line"><a name="l04895"></a><span class="lineno"> 4895</span>&#160;                                        <a class="code" href="class_power_source.html">PowerSource</a>* src = (<a class="code" href="class_power_source.html">PowerSource</a>*) sys;</div>
<div class="line"><a name="l04896"></a><span class="lineno"> 4896</span>&#160;                                        <span class="keywordtype">int</span>          isrc = <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#ad8df75cba3391bb17bbcf31f189ef22d">index</a>(src);</div>
<div class="line"><a name="l04897"></a><span class="lineno"> 4897</span>&#160;</div>
<div class="line"><a name="l04898"></a><span class="lineno"> 4898</span>&#160;                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l04899"></a><span class="lineno"> 4899</span>&#160;                                                <a class="code" href="class_power_source.html">PowerSource</a>* pwr = <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[i];</div>
<div class="line"><a name="l04900"></a><span class="lineno"> 4900</span>&#160;</div>
<div class="line"><a name="l04901"></a><span class="lineno"> 4901</span>&#160;                                                <span class="keywordflow">if</span> (pwr != src) {</div>
<div class="line"><a name="l04902"></a><span class="lineno"> 4902</span>&#160;                                                        <a class="code" href="class_list.html">List&lt;System&gt;</a> xfer;</div>
<div class="line"><a name="l04903"></a><span class="lineno"> 4903</span>&#160;</div>
<div class="line"><a name="l04904"></a><span class="lineno"> 4904</span>&#160;                                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; pwr-&gt;<a class="code" href="class_power_source.html#a0d1d4623852db43525c3b10ca00ecede">Clients</a>().<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); j++) {</div>
<div class="line"><a name="l04905"></a><span class="lineno"> 4905</span>&#160;                                                                <a class="code" href="class_system.html">System</a>* s = pwr-&gt;<a class="code" href="class_power_source.html#a0d1d4623852db43525c3b10ca00ecede">Clients</a>().<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(j);</div>
<div class="line"><a name="l04906"></a><span class="lineno"> 4906</span>&#160;</div>
<div class="line"><a name="l04907"></a><span class="lineno"> 4907</span>&#160;                                                                <span class="keywordflow">if</span> (s-&gt;<a class="code" href="class_system.html#a3ab86aa81fedbfd12e17179728440e8a">GetSourceIndex</a>() == isrc) {</div>
<div class="line"><a name="l04908"></a><span class="lineno"> 4908</span>&#160;                                                                        xfer.<a class="code" href="class_list.html#ab3180edb4da02be2a4b62320071755b8">append</a>(s);</div>
<div class="line"><a name="l04909"></a><span class="lineno"> 4909</span>&#160;                                                                }</div>
<div class="line"><a name="l04910"></a><span class="lineno"> 4910</span>&#160;                                                        }</div>
<div class="line"><a name="l04911"></a><span class="lineno"> 4911</span>&#160;</div>
<div class="line"><a name="l04912"></a><span class="lineno"> 4912</span>&#160;                                                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; xfer.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); j++) {</div>
<div class="line"><a name="l04913"></a><span class="lineno"> 4913</span>&#160;                                                                <a class="code" href="class_system.html">System</a>* s = xfer.<a class="code" href="class_list.html#a92f41ba1f2810b54d6b47ce727ff9835">at</a>(j);</div>
<div class="line"><a name="l04914"></a><span class="lineno"> 4914</span>&#160;                                                                pwr-&gt;<a class="code" href="class_power_source.html#a54e64eed70609c53cfebc7b449a848c2">RemoveClient</a>(s);</div>
<div class="line"><a name="l04915"></a><span class="lineno"> 4915</span>&#160;                                                                src-&gt;<a class="code" href="class_power_source.html#a59abc86f4802c51cfdbd0103240e8761">AddClient</a>(s);</div>
<div class="line"><a name="l04916"></a><span class="lineno"> 4916</span>&#160;                                                        }</div>
<div class="line"><a name="l04917"></a><span class="lineno"> 4917</span>&#160;                                                }</div>
<div class="line"><a name="l04918"></a><span class="lineno"> 4918</span>&#160;                                        }</div>
<div class="line"><a name="l04919"></a><span class="lineno"> 4919</span>&#160;                                }</div>
<div class="line"><a name="l04920"></a><span class="lineno"> 4920</span>&#160;                        }</div>
<div class="line"><a name="l04921"></a><span class="lineno"> 4921</span>&#160;                }</div>
<div class="line"><a name="l04922"></a><span class="lineno"> 4922</span>&#160;        }</div>
<div class="line"><a name="l04923"></a><span class="lineno"> 4923</span>&#160;}</div>
<div class="line"><a name="l04924"></a><span class="lineno"> 4924</span>&#160;</div>
<div class="line"><a name="l04925"></a><span class="lineno"> 4925</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l04926"></a><span class="lineno"> 4926</span>&#160;</div>
<div class="line"><a name="l04927"></a><span class="lineno"> 4927</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04928"></a><span class="lineno"><a class="code" href="class_ship.html#ab91049891daf6c2acc7a63abbd2b5b33"> 4928</a></span>&#160;<a class="code" href="class_ship.html#ab91049891daf6c2acc7a63abbd2b5b33">Ship::SetNetworkControl</a>(<a class="code" href="class_director.html">Director</a>* net)</div>
<div class="line"><a name="l04929"></a><span class="lineno"> 4929</span>&#160;{</div>
<div class="line"><a name="l04930"></a><span class="lineno"> 4930</span>&#160;        <a class="code" href="class_ship.html#afefce98c3697e2bcb2ff6eca25eba7f1">net_control</a> = net;</div>
<div class="line"><a name="l04931"></a><span class="lineno"> 4931</span>&#160;</div>
<div class="line"><a name="l04932"></a><span class="lineno"> 4932</span>&#160;        <span class="keyword">delete</span> <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l04933"></a><span class="lineno"> 4933</span>&#160;        <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l04934"></a><span class="lineno"> 4934</span>&#160;</div>
<div class="line"><a name="l04935"></a><span class="lineno"> 4935</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="class_ship.html#afefce98c3697e2bcb2ff6eca25eba7f1">net_control</a> &amp;&amp; <a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() &lt; 100) {</div>
<div class="line"><a name="l04936"></a><span class="lineno"> 4936</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858">IsStatic</a>())</div>
<div class="line"><a name="l04937"></a><span class="lineno"> 4937</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l04938"></a><span class="lineno"> 4938</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>())</div>
<div class="line"><a name="l04939"></a><span class="lineno"> 4939</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = <a class="code" href="class_steer_a_i.html#aed3f6a34a1a5e47f37fde0fb294337b0">SteerAI::Create</a>(<span class="keyword">this</span>, <a class="code" href="class_steer_a_i.html#ab5f1818dcf2918bd33744c178eae1ba2a325bae88d0efc9d3f17b8aadd1b796c8">SteerAI::STARSHIP</a>);</div>
<div class="line"><a name="l04940"></a><span class="lineno"> 4940</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l04941"></a><span class="lineno"> 4941</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = <a class="code" href="class_steer_a_i.html#aed3f6a34a1a5e47f37fde0fb294337b0">SteerAI::Create</a>(<span class="keyword">this</span>, <a class="code" href="class_steer_a_i.html#ab5f1818dcf2918bd33744c178eae1ba2a539777f4b4f891e03431119a3641613c">SteerAI::FIGHTER</a>);</div>
<div class="line"><a name="l04942"></a><span class="lineno"> 4942</span>&#160;        }</div>
<div class="line"><a name="l04943"></a><span class="lineno"> 4943</span>&#160;}</div>
<div class="line"><a name="l04944"></a><span class="lineno"> 4944</span>&#160;</div>
<div class="line"><a name="l04945"></a><span class="lineno"> 4945</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l04946"></a><span class="lineno"><a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6"> 4946</a></span>&#160;<a class="code" href="class_ship.html#a3cc15d41dc9721ed3f2f8402760028e6">Ship::SetControls</a>(<a class="code" href="class_motion_controller.html">MotionController</a>* m)</div>
<div class="line"><a name="l04947"></a><span class="lineno"> 4947</span>&#160;{</div>
<div class="line"><a name="l04948"></a><span class="lineno"> 4948</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#ae36e2b791029c8e7c548bbe381b39aee">IsDropping</a>() || <a class="code" href="class_ship.html#a84eb3b15de4b77f5fc8c44347026b7e4">IsAttaining</a>()) {</div>
<div class="line"><a name="l04949"></a><span class="lineno"> 4949</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> &amp;&amp; <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() != <a class="code" href="class_drop_ship_a_i.html#aa597e06f986a9873cfe17b5176f83da5a8bcb600a22b2fc1c07ad00931ec44aa3">DropShipAI::DIR_TYPE</a>) {</div>
<div class="line"><a name="l04950"></a><span class="lineno"> 4950</span>&#160;                        <span class="keyword">delete</span> <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l04951"></a><span class="lineno"> 4951</span>&#160;                        <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_drop_ship_a_i.html">DropShipAI</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l04952"></a><span class="lineno"> 4952</span>&#160;                }</div>
<div class="line"><a name="l04953"></a><span class="lineno"> 4953</span>&#160;</div>
<div class="line"><a name="l04954"></a><span class="lineno"> 4954</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l04955"></a><span class="lineno"> 4955</span>&#160;        }</div>
<div class="line"><a name="l04956"></a><span class="lineno"> 4956</span>&#160;</div>
<div class="line"><a name="l04957"></a><span class="lineno"> 4957</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a7e9c574711d841fabf3a2648117a7093">IsSkipping</a>()) {</div>
<div class="line"><a name="l04958"></a><span class="lineno"> 4958</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a> &amp;&amp; <a class="code" href="class_ship.html#aee47c1ecd6f0a9d78b2c9dacf14095b8">sim</a>-&gt;<a class="code" href="class_sim.html#a77c21538f4c452ea5ae3d2f8af689893">GetPlayerShip</a>() == <span class="keyword">this</span>)</div>
<div class="line"><a name="l04959"></a><span class="lineno"> 4959</span>&#160;                <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#a5c80a0650d6568d3bc6b15253e36ddaf">EngageAutoNav</a>();</div>
<div class="line"><a name="l04960"></a><span class="lineno"> 4960</span>&#160;        }</div>
<div class="line"><a name="l04961"></a><span class="lineno"> 4961</span>&#160;</div>
<div class="line"><a name="l04962"></a><span class="lineno"> 4962</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a52816aa006d339addfc7b199f586e7b6">IsDying</a>() || <a class="code" href="class_ship.html#a24ed7895c3b49f5aafca441d25e64408">IsDead</a>()) {</div>
<div class="line"><a name="l04963"></a><span class="lineno"> 4963</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>) {</div>
<div class="line"><a name="l04964"></a><span class="lineno"> 4964</span>&#160;                        <span class="keyword">delete</span> <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l04965"></a><span class="lineno"> 4965</span>&#160;                        <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l04966"></a><span class="lineno"> 4966</span>&#160;                }</div>
<div class="line"><a name="l04967"></a><span class="lineno"> 4967</span>&#160;</div>
<div class="line"><a name="l04968"></a><span class="lineno"> 4968</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a> &amp;&amp; <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#ab138eab011b2b0f13ae50cfe9e9f2b27">AutoNavEngaged</a>()) {</div>
<div class="line"><a name="l04969"></a><span class="lineno"> 4969</span>&#160;                        <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#a8055a4baad25871968fbdc04f6631382">DisengageAutoNav</a>();</div>
<div class="line"><a name="l04970"></a><span class="lineno"> 4970</span>&#160;                }</div>
<div class="line"><a name="l04971"></a><span class="lineno"> 4971</span>&#160;</div>
<div class="line"><a name="l04972"></a><span class="lineno"> 4972</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l04973"></a><span class="lineno"> 4973</span>&#160;        }</div>
<div class="line"><a name="l04974"></a><span class="lineno"> 4974</span>&#160;</div>
<div class="line"><a name="l04975"></a><span class="lineno"> 4975</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a6b8e2705ced511545378e49b14573fdc">life</a> == 0) {</div>
<div class="line"><a name="l04976"></a><span class="lineno"> 4976</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> || <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>) {</div>
<div class="line"><a name="l04977"></a><span class="lineno"> 4977</span>&#160;                        <a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">::Print</a>(<span class="stringliteral">&quot;Warning: dying ship &#39;%&#39; still has not been destroyed!\n&quot;</span>, <a class="code" href="class_physical.html#a8494a16d51ebf60bba3961b2a9101b8d">name</a>);</div>
<div class="line"><a name="l04978"></a><span class="lineno"> 4978</span>&#160;                        <span class="keyword">delete</span> <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l04979"></a><span class="lineno"> 4979</span>&#160;                        <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l04980"></a><span class="lineno"> 4980</span>&#160;</div>
<div class="line"><a name="l04981"></a><span class="lineno"> 4981</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a> &amp;&amp; <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#ab138eab011b2b0f13ae50cfe9e9f2b27">AutoNavEngaged</a>())</div>
<div class="line"><a name="l04982"></a><span class="lineno"> 4982</span>&#160;                        <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#a8055a4baad25871968fbdc04f6631382">DisengageAutoNav</a>();</div>
<div class="line"><a name="l04983"></a><span class="lineno"> 4983</span>&#160;                }</div>
<div class="line"><a name="l04984"></a><span class="lineno"> 4984</span>&#160;</div>
<div class="line"><a name="l04985"></a><span class="lineno"> 4985</span>&#160;                <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l04986"></a><span class="lineno"> 4986</span>&#160;        }</div>
<div class="line"><a name="l04987"></a><span class="lineno"> 4987</span>&#160;</div>
<div class="line"><a name="l04988"></a><span class="lineno"> 4988</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a> &amp;&amp; <a class="code" href="class_ship.html#a38675907ca50a234f19ff3424ef3522f">navsys</a>-&gt;<a class="code" href="class_nav_system.html#ab138eab011b2b0f13ae50cfe9e9f2b27">AutoNavEngaged</a>()) {</div>
<div class="line"><a name="l04989"></a><span class="lineno"> 4989</span>&#160;                <a class="code" href="class_nav_a_i.html">NavAI</a>* nav = 0;</div>
<div class="line"><a name="l04990"></a><span class="lineno"> 4990</span>&#160;</div>
<div class="line"><a name="l04991"></a><span class="lineno"> 4991</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>) {</div>
<div class="line"><a name="l04992"></a><span class="lineno"> 4992</span>&#160;                        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() != <a class="code" href="class_nav_a_i.html#adbc8559675cfd1568a25ace8c3b0e20fabd17543922919ba4a98165d0850e659c">NavAI::DIR_TYPE</a>) {</div>
<div class="line"><a name="l04993"></a><span class="lineno"> 4993</span>&#160;                                <span class="keyword">delete</span> <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l04994"></a><span class="lineno"> 4994</span>&#160;                                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l04995"></a><span class="lineno"> 4995</span>&#160;                        }</div>
<div class="line"><a name="l04996"></a><span class="lineno"> 4996</span>&#160;                        <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l04997"></a><span class="lineno"> 4997</span>&#160;                                nav = (<a class="code" href="class_nav_a_i.html">NavAI</a>*) <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l04998"></a><span class="lineno"> 4998</span>&#160;                        }</div>
<div class="line"><a name="l04999"></a><span class="lineno"> 4999</span>&#160;                }</div>
<div class="line"><a name="l05000"></a><span class="lineno"> 5000</span>&#160;</div>
<div class="line"><a name="l05001"></a><span class="lineno"> 5001</span>&#160;                <span class="keywordflow">if</span> (!nav) {</div>
<div class="line"><a name="l05002"></a><span class="lineno"> 5002</span>&#160;                        nav = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_nav_a_i.html">NavAI</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l05003"></a><span class="lineno"> 5003</span>&#160;                        <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = nav;</div>
<div class="line"><a name="l05004"></a><span class="lineno"> 5004</span>&#160;                        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l05005"></a><span class="lineno"> 5005</span>&#160;                }</div>
<div class="line"><a name="l05006"></a><span class="lineno"> 5006</span>&#160;                </div>
<div class="line"><a name="l05007"></a><span class="lineno"> 5007</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!nav-&gt;<a class="code" href="class_nav_a_i.html#aa119f28c1173547879bf08cf541f7688">Complete</a>()) {</div>
<div class="line"><a name="l05008"></a><span class="lineno"> 5008</span>&#160;                        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l05009"></a><span class="lineno"> 5009</span>&#160;                }</div>
<div class="line"><a name="l05010"></a><span class="lineno"> 5010</span>&#160;        }</div>
<div class="line"><a name="l05011"></a><span class="lineno"> 5011</span>&#160;</div>
<div class="line"><a name="l05012"></a><span class="lineno"> 5012</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>) {</div>
<div class="line"><a name="l05013"></a><span class="lineno"> 5013</span>&#160;                <span class="keyword">delete</span> <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l05014"></a><span class="lineno"> 5014</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = 0;</div>
<div class="line"><a name="l05015"></a><span class="lineno"> 5015</span>&#160;        }</div>
<div class="line"><a name="l05016"></a><span class="lineno"> 5016</span>&#160;</div>
<div class="line"><a name="l05017"></a><span class="lineno"> 5017</span>&#160;        <span class="keywordflow">if</span> (m) {</div>
<div class="line"><a name="l05018"></a><span class="lineno"> 5018</span>&#160;                <a class="code" href="_game_8cpp.html#ad899ce91ed5646957e2403e1353ad0a5">Keyboard::FlushKeys</a>();</div>
<div class="line"><a name="l05019"></a><span class="lineno"> 5019</span>&#160;                m-&gt;<a class="code" href="class_motion_controller.html#a3607749f63700adf5059fe1db43ce422">Acquire</a>();</div>
<div class="line"><a name="l05020"></a><span class="lineno"> 5020</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = <span class="keyword">new</span>(__FILE__,__LINE__) <a class="code" href="class_ship_ctrl.html">ShipCtrl</a>(<span class="keyword">this</span>, m);</div>
<div class="line"><a name="l05021"></a><span class="lineno"> 5021</span>&#160;                <a class="code" href="class_ship.html#a51b71ffbd9d558e6e95b37552ed4dc9e">director_info</a> = <a class="code" href="class_game.html#a80f0de6fe1883b6b0e4c67b3e16afb2f">Game::GetText</a>(<span class="stringliteral">&quot;flcs.auto&quot;</span>);</div>
<div class="line"><a name="l05022"></a><span class="lineno"> 5022</span>&#160;        }</div>
<div class="line"><a name="l05023"></a><span class="lineno"> 5023</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a5e603faf7321fb04d5b306d70ae6b9ca">GetIFF</a>() &lt; 100) {</div>
<div class="line"><a name="l05024"></a><span class="lineno"> 5024</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#af5b87b4c086215f410c17d518f0b5858">IsStatic</a>())</div>
<div class="line"><a name="l05025"></a><span class="lineno"> 5025</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = <a class="code" href="class_steer_a_i.html#aed3f6a34a1a5e47f37fde0fb294337b0">SteerAI::Create</a>(<span class="keyword">this</span>, <a class="code" href="class_steer_a_i.html#ab5f1818dcf2918bd33744c178eae1ba2abf1a60535ad0067d16d264dc7836b85f">SteerAI::GROUND</a>);</div>
<div class="line"><a name="l05026"></a><span class="lineno"> 5026</span>&#160;</div>
<div class="line"><a name="l05027"></a><span class="lineno"> 5027</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aad13fe948c87ff5359b29ccfb69bcbc0">IsStarship</a>() &amp;&amp; !<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>())</div>
<div class="line"><a name="l05028"></a><span class="lineno"> 5028</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = <a class="code" href="class_steer_a_i.html#aed3f6a34a1a5e47f37fde0fb294337b0">SteerAI::Create</a>(<span class="keyword">this</span>, <a class="code" href="class_steer_a_i.html#ab5f1818dcf2918bd33744c178eae1ba2a325bae88d0efc9d3f17b8aadd1b796c8">SteerAI::STARSHIP</a>);</div>
<div class="line"><a name="l05029"></a><span class="lineno"> 5029</span>&#160;</div>
<div class="line"><a name="l05030"></a><span class="lineno"> 5030</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l05031"></a><span class="lineno"> 5031</span>&#160;                <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> = <a class="code" href="class_steer_a_i.html#aed3f6a34a1a5e47f37fde0fb294337b0">SteerAI::Create</a>(<span class="keyword">this</span>, <a class="code" href="class_steer_a_i.html#ab5f1818dcf2918bd33744c178eae1ba2a539777f4b4f891e03431119a3641613c">SteerAI::FIGHTER</a>);</div>
<div class="line"><a name="l05032"></a><span class="lineno"> 5032</span>&#160;        }</div>
<div class="line"><a name="l05033"></a><span class="lineno"> 5033</span>&#160;}</div>
<div class="line"><a name="l05034"></a><span class="lineno"> 5034</span>&#160;</div>
<div class="line"><a name="l05035"></a><span class="lineno"> 5035</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05036"></a><span class="lineno"> 5036</span>&#160;</div>
<div class="line"><a name="l05037"></a><span class="lineno"> 5037</span>&#160;<a class="code" href="class_color.html">Color</a></div>
<div class="line"><a name="l05038"></a><span class="lineno"><a class="code" href="class_ship.html#a0d3861128ef2694f196443f4fe8b08b4"> 5038</a></span>&#160;<a class="code" href="class_ship.html#a0d3861128ef2694f196443f4fe8b08b4">Ship::IFFColor</a>(<span class="keywordtype">int</span> iff)</div>
<div class="line"><a name="l05039"></a><span class="lineno"> 5039</span>&#160;{</div>
<div class="line"><a name="l05040"></a><span class="lineno"> 5040</span>&#160;        <a class="code" href="class_color.html">Color</a> c;</div>
<div class="line"><a name="l05041"></a><span class="lineno"> 5041</span>&#160;</div>
<div class="line"><a name="l05042"></a><span class="lineno"> 5042</span>&#160;        <span class="keywordflow">switch</span> (iff) {</div>
<div class="line"><a name="l05043"></a><span class="lineno"> 5043</span>&#160;        <span class="keywordflow">case</span> 0:  <span class="comment">// NEUTRAL, NON-COMBAT</span></div>
<div class="line"><a name="l05044"></a><span class="lineno"> 5044</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(192,192,192);</div>
<div class="line"><a name="l05045"></a><span class="lineno"> 5045</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05046"></a><span class="lineno"> 5046</span>&#160;</div>
<div class="line"><a name="l05047"></a><span class="lineno"> 5047</span>&#160;        <span class="keywordflow">case</span> 1:  <span class="comment">// TERELLIAN ALLIANCE</span></div>
<div class="line"><a name="l05048"></a><span class="lineno"> 5048</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(70,70,220);</div>
<div class="line"><a name="l05049"></a><span class="lineno"> 5049</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05050"></a><span class="lineno"> 5050</span>&#160;</div>
<div class="line"><a name="l05051"></a><span class="lineno"> 5051</span>&#160;        <span class="keywordflow">case</span> 2:  <span class="comment">// MARAKAN HEGEMONY</span></div>
<div class="line"><a name="l05052"></a><span class="lineno"> 5052</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(220,20,20);</div>
<div class="line"><a name="l05053"></a><span class="lineno"> 5053</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05054"></a><span class="lineno"> 5054</span>&#160;</div>
<div class="line"><a name="l05055"></a><span class="lineno"> 5055</span>&#160;        <span class="keywordflow">case</span> 3:  <span class="comment">// BROTHERHOOD OF IRON</span></div>
<div class="line"><a name="l05056"></a><span class="lineno"> 5056</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(200,180,20);</div>
<div class="line"><a name="l05057"></a><span class="lineno"> 5057</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05058"></a><span class="lineno"> 5058</span>&#160;</div>
<div class="line"><a name="l05059"></a><span class="lineno"> 5059</span>&#160;        <span class="keywordflow">case</span> 4:  <span class="comment">// ZOLON EMPIRE</span></div>
<div class="line"><a name="l05060"></a><span class="lineno"> 5060</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(20,200,20);</div>
<div class="line"><a name="l05061"></a><span class="lineno"> 5061</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05062"></a><span class="lineno"> 5062</span>&#160;</div>
<div class="line"><a name="l05063"></a><span class="lineno"> 5063</span>&#160;        <span class="keywordflow">case</span> 5:</div>
<div class="line"><a name="l05064"></a><span class="lineno"> 5064</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(128, 0, 128);</div>
<div class="line"><a name="l05065"></a><span class="lineno"> 5065</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05066"></a><span class="lineno"> 5066</span>&#160;</div>
<div class="line"><a name="l05067"></a><span class="lineno"> 5067</span>&#160;        <span class="keywordflow">case</span> 6:</div>
<div class="line"><a name="l05068"></a><span class="lineno"> 5068</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(40,192,192);</div>
<div class="line"><a name="l05069"></a><span class="lineno"> 5069</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05070"></a><span class="lineno"> 5070</span>&#160;</div>
<div class="line"><a name="l05071"></a><span class="lineno"> 5071</span>&#160;        <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l05072"></a><span class="lineno"> 5072</span>&#160;                c = <a class="code" href="class_color.html">Color</a>(128,128,128);</div>
<div class="line"><a name="l05073"></a><span class="lineno"> 5073</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05074"></a><span class="lineno"> 5074</span>&#160;        }</div>
<div class="line"><a name="l05075"></a><span class="lineno"> 5075</span>&#160;</div>
<div class="line"><a name="l05076"></a><span class="lineno"> 5076</span>&#160;        <span class="keywordflow">return</span> c;   </div>
<div class="line"><a name="l05077"></a><span class="lineno"> 5077</span>&#160;}</div>
<div class="line"><a name="l05078"></a><span class="lineno"> 5078</span>&#160;</div>
<div class="line"><a name="l05079"></a><span class="lineno"> 5079</span>&#160;<a class="code" href="class_color.html">Color</a></div>
<div class="line"><a name="l05080"></a><span class="lineno"><a class="code" href="class_ship.html#ac06e6676c9166a66bd449307cddd1b43"> 5080</a></span>&#160;<a class="code" href="class_ship.html#ac06e6676c9166a66bd449307cddd1b43">Ship::MarkerColor</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l05081"></a><span class="lineno"> 5081</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l05082"></a><span class="lineno"> 5082</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a0d3861128ef2694f196443f4fe8b08b4">IFFColor</a>(<a class="code" href="class_ship.html#a427ebb859a120bcd4a6a7337b57f8e4a">IFF_code</a>);</div>
<div class="line"><a name="l05083"></a><span class="lineno"> 5083</span>&#160;}</div>
<div class="line"><a name="l05084"></a><span class="lineno"> 5084</span>&#160;</div>
<div class="line"><a name="l05085"></a><span class="lineno"> 5085</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05086"></a><span class="lineno"> 5086</span>&#160;</div>
<div class="line"><a name="l05087"></a><span class="lineno"> 5087</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l05088"></a><span class="lineno"><a class="code" href="class_ship.html#a55a664b0a818ef1ca9fde91a5e1c81c5"> 5088</a></span>&#160;<a class="code" href="class_ship.html#a55a664b0a818ef1ca9fde91a5e1c81c5">Ship::SetIFF</a>(<span class="keywordtype">int</span> iff)</div>
<div class="line"><a name="l05089"></a><span class="lineno"> 5089</span>&#160;{</div>
<div class="line"><a name="l05090"></a><span class="lineno"> 5090</span>&#160;        <a class="code" href="class_ship.html#a427ebb859a120bcd4a6a7337b57f8e4a">IFF_code</a> = iff;</div>
<div class="line"><a name="l05091"></a><span class="lineno"> 5091</span>&#160;</div>
<div class="line"><a name="l05092"></a><span class="lineno"> 5092</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>)</div>
<div class="line"><a name="l05093"></a><span class="lineno"> 5093</span>&#160;        <a class="code" href="class_ship.html#a216d3ddb382a82d4f12bac3e31145117">hangar</a>-&gt;<a class="code" href="class_hangar.html#ace85dfc37c36b4f17d628e7f4e83d920">SetAllIFF</a>(iff);</div>
<div class="line"><a name="l05094"></a><span class="lineno"> 5094</span>&#160;</div>
<div class="line"><a name="l05095"></a><span class="lineno"> 5095</span>&#160;        <a class="code" href="class_ship.html#a32acf68f5ac07882e170cf08718fe031">DropTarget</a>();</div>
<div class="line"><a name="l05096"></a><span class="lineno"> 5096</span>&#160;</div>
<div class="line"><a name="l05097"></a><span class="lineno"> 5097</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a> &amp;&amp; <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>-&gt;<a class="code" href="class_director.html#a3b5abe29979a016ef78c40ebf82ace4a">Type</a>() &gt;= 1000) {</div>
<div class="line"><a name="l05098"></a><span class="lineno"> 5098</span>&#160;                <a class="code" href="class_steer_a_i.html">SteerAI</a>* ai = (<a class="code" href="class_steer_a_i.html">SteerAI</a>*) <a class="code" href="class_physical.html#a8ebe4e3afdd856a228135ce30bd9d704">dir</a>;</div>
<div class="line"><a name="l05099"></a><span class="lineno"> 5099</span>&#160;                ai-&gt;<a class="code" href="class_steer_a_i.html#a0488e32b12164217dc6bc23964537d23">DropTarget</a>();</div>
<div class="line"><a name="l05100"></a><span class="lineno"> 5100</span>&#160;        }</div>
<div class="line"><a name="l05101"></a><span class="lineno"> 5101</span>&#160;}</div>
<div class="line"><a name="l05102"></a><span class="lineno"> 5102</span>&#160;</div>
<div class="line"><a name="l05103"></a><span class="lineno"> 5103</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05104"></a><span class="lineno"> 5104</span>&#160;</div>
<div class="line"><a name="l05105"></a><span class="lineno"> 5105</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l05106"></a><span class="lineno"><a class="code" href="class_ship.html#a670b877ba371db11b31eb6bdb107a379"> 5106</a></span>&#160;<a class="code" href="class_ship.html#a670b877ba371db11b31eb6bdb107a379">Ship::SetRogue</a>(<span class="keywordtype">bool</span> r)</div>
<div class="line"><a name="l05107"></a><span class="lineno"> 5107</span>&#160;{</div>
<div class="line"><a name="l05108"></a><span class="lineno"> 5108</span>&#160;        <span class="keywordtype">bool</span> rogue = <a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>();</div>
<div class="line"><a name="l05109"></a><span class="lineno"> 5109</span>&#160;</div>
<div class="line"><a name="l05110"></a><span class="lineno"> 5110</span>&#160;        <a class="code" href="class_ship.html#a2b7f7d55e611e28dff5479e889000164">ff_count</a> = r ? 1000 : 0;</div>
<div class="line"><a name="l05111"></a><span class="lineno"> 5111</span>&#160;</div>
<div class="line"><a name="l05112"></a><span class="lineno"> 5112</span>&#160;        <span class="keywordflow">if</span> (!rogue &amp;&amp; <a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>()) {</div>
<div class="line"><a name="l05113"></a><span class="lineno"> 5113</span>&#160;                <a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">Print</a>(<span class="stringliteral">&quot;Ship &#39;%s&#39; has been made rogue\n&quot;</span>, <a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>());</div>
<div class="line"><a name="l05114"></a><span class="lineno"> 5114</span>&#160;        }</div>
<div class="line"><a name="l05115"></a><span class="lineno"> 5115</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rogue &amp;&amp; !<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>()) {</div>
<div class="line"><a name="l05116"></a><span class="lineno"> 5116</span>&#160;                <a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">Print</a>(<span class="stringliteral">&quot;Ship &#39;%s&#39; is no longer rogue\n&quot;</span>, <a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>());</div>
<div class="line"><a name="l05117"></a><span class="lineno"> 5117</span>&#160;        }</div>
<div class="line"><a name="l05118"></a><span class="lineno"> 5118</span>&#160;}</div>
<div class="line"><a name="l05119"></a><span class="lineno"> 5119</span>&#160;</div>
<div class="line"><a name="l05120"></a><span class="lineno"> 5120</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l05121"></a><span class="lineno"><a class="code" href="class_ship.html#aad25251779332e616d738de0e1e3f2e1"> 5121</a></span>&#160;<a class="code" href="class_ship.html#aad25251779332e616d738de0e1e3f2e1">Ship::SetFriendlyFire</a>(<span class="keywordtype">int</span> f)</div>
<div class="line"><a name="l05122"></a><span class="lineno"> 5122</span>&#160;{</div>
<div class="line"><a name="l05123"></a><span class="lineno"> 5123</span>&#160;        <span class="keywordtype">bool</span> rogue = <a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>();</div>
<div class="line"><a name="l05124"></a><span class="lineno"> 5124</span>&#160;</div>
<div class="line"><a name="l05125"></a><span class="lineno"> 5125</span>&#160;        <a class="code" href="class_ship.html#a2b7f7d55e611e28dff5479e889000164">ff_count</a> = f;</div>
<div class="line"><a name="l05126"></a><span class="lineno"> 5126</span>&#160;</div>
<div class="line"><a name="l05127"></a><span class="lineno"> 5127</span>&#160;        <span class="keywordflow">if</span> (!rogue &amp;&amp; <a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>()) {</div>
<div class="line"><a name="l05128"></a><span class="lineno"> 5128</span>&#160;                <a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">Print</a>(<span class="stringliteral">&quot;Ship &#39;%s&#39; has been made rogue with ff_count = %d\n&quot;</span>, <a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>(), <a class="code" href="class_ship.html#a2b7f7d55e611e28dff5479e889000164">ff_count</a>);</div>
<div class="line"><a name="l05129"></a><span class="lineno"> 5129</span>&#160;        }</div>
<div class="line"><a name="l05130"></a><span class="lineno"> 5130</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rogue &amp;&amp; !<a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>()) {</div>
<div class="line"><a name="l05131"></a><span class="lineno"> 5131</span>&#160;                <a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">Print</a>(<span class="stringliteral">&quot;Ship &#39;%s&#39; is no longer rogue\n&quot;</span>, <a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>());</div>
<div class="line"><a name="l05132"></a><span class="lineno"> 5132</span>&#160;        }</div>
<div class="line"><a name="l05133"></a><span class="lineno"> 5133</span>&#160;}</div>
<div class="line"><a name="l05134"></a><span class="lineno"> 5134</span>&#160;</div>
<div class="line"><a name="l05135"></a><span class="lineno"> 5135</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l05136"></a><span class="lineno"><a class="code" href="class_ship.html#a4cc1a8414da79378fd0b02c7cdfdbfec"> 5136</a></span>&#160;<a class="code" href="class_ship.html#a4cc1a8414da79378fd0b02c7cdfdbfec">Ship::IncFriendlyFire</a>(<span class="keywordtype">int</span> f)</div>
<div class="line"><a name="l05137"></a><span class="lineno"> 5137</span>&#160;{</div>
<div class="line"><a name="l05138"></a><span class="lineno"> 5138</span>&#160;        <span class="keywordflow">if</span> (f &gt; 0) {</div>
<div class="line"><a name="l05139"></a><span class="lineno"> 5139</span>&#160;                <span class="keywordtype">bool</span> rogue = <a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>();</div>
<div class="line"><a name="l05140"></a><span class="lineno"> 5140</span>&#160;</div>
<div class="line"><a name="l05141"></a><span class="lineno"> 5141</span>&#160;                <a class="code" href="class_ship.html#a2b7f7d55e611e28dff5479e889000164">ff_count</a> += f;</div>
<div class="line"><a name="l05142"></a><span class="lineno"> 5142</span>&#160;</div>
<div class="line"><a name="l05143"></a><span class="lineno"> 5143</span>&#160;                <span class="keywordflow">if</span> (!rogue &amp;&amp; <a class="code" href="class_ship.html#acf065374e136b9255857d49b352351af">IsRogue</a>()) {</div>
<div class="line"><a name="l05144"></a><span class="lineno"> 5144</span>&#160;                        <a class="code" href="_list_8inl.html#a76779b0ba1af4da2cfb8cf309b39372b">Print</a>(<span class="stringliteral">&quot;Ship &#39;%s&#39; has been made rogue with ff_count = %d\n&quot;</span>, <a class="code" href="class_physical.html#a805a89f8e93e2e66452b5cb6ab0c5f6b">Name</a>(), <a class="code" href="class_ship.html#a2b7f7d55e611e28dff5479e889000164">ff_count</a>);</div>
<div class="line"><a name="l05145"></a><span class="lineno"> 5145</span>&#160;                }</div>
<div class="line"><a name="l05146"></a><span class="lineno"> 5146</span>&#160;        }</div>
<div class="line"><a name="l05147"></a><span class="lineno"> 5147</span>&#160;}</div>
<div class="line"><a name="l05148"></a><span class="lineno"> 5148</span>&#160;</div>
<div class="line"><a name="l05149"></a><span class="lineno"> 5149</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05150"></a><span class="lineno"> 5150</span>&#160;</div>
<div class="line"><a name="l05151"></a><span class="lineno"> 5151</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l05152"></a><span class="lineno"><a class="code" href="class_ship.html#a052631d199eb5726a300734cf83a4a25"> 5152</a></span>&#160;<a class="code" href="class_ship.html#a052631d199eb5726a300734cf83a4a25">Ship::SetEMCON</a>(<span class="keywordtype">int</span> e, <span class="keywordtype">bool</span> from_net)</div>
<div class="line"><a name="l05153"></a><span class="lineno"> 5153</span>&#160;{</div>
<div class="line"><a name="l05154"></a><span class="lineno"> 5154</span>&#160;        <span class="keywordflow">if</span> (e &lt; 1)        <a class="code" href="class_ship.html#aa8876b9838fca2ac2a165888fdbcebc1">emcon</a> = 1;</div>
<div class="line"><a name="l05155"></a><span class="lineno"> 5155</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (e &gt; 3)   <a class="code" href="class_ship.html#aa8876b9838fca2ac2a165888fdbcebc1">emcon</a> = 3;</div>
<div class="line"><a name="l05156"></a><span class="lineno"> 5156</span>&#160;        <span class="keywordflow">else</span>              <a class="code" href="class_ship.html#aa8876b9838fca2ac2a165888fdbcebc1">emcon</a> = (BYTE) e;</div>
<div class="line"><a name="l05157"></a><span class="lineno"> 5157</span>&#160;</div>
<div class="line"><a name="l05158"></a><span class="lineno"> 5158</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#aa8876b9838fca2ac2a165888fdbcebc1">emcon</a> != <a class="code" href="class_ship.html#a9a55a6dede9ee1788d3cf9ecf643e42f">old_emcon</a> &amp;&amp; !from_net &amp;&amp; <a class="code" href="class_net_game.html#a019dbd91861b01d0ca35cef0e1f4066e">NetGame::GetInstance</a>())</div>
<div class="line"><a name="l05159"></a><span class="lineno"> 5159</span>&#160;        <a class="code" href="class_net_util.html#a1947ec113ce045573d4e2565c450e14c">NetUtil::SendObjEmcon</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l05160"></a><span class="lineno"> 5160</span>&#160;}</div>
<div class="line"><a name="l05161"></a><span class="lineno"> 5161</span>&#160;</div>
<div class="line"><a name="l05162"></a><span class="lineno"> 5162</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l05163"></a><span class="lineno"><a class="code" href="class_ship.html#a35eceb0371a97ee305758e9a19fdc2c1"> 5163</a></span>&#160;<a class="code" href="class_ship.html#a35eceb0371a97ee305758e9a19fdc2c1">Ship::PCS</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l05164"></a><span class="lineno"> 5164</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l05165"></a><span class="lineno"> 5165</span>&#160;        <span class="keywordtype">double</span> e_factor = <a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a79131689313737f7ae236d4e34809d4e">e_factor</a>[<a class="code" href="class_ship.html#aa8876b9838fca2ac2a165888fdbcebc1">emcon</a>-1];</div>
<div class="line"><a name="l05166"></a><span class="lineno"> 5166</span>&#160;</div>
<div class="line"><a name="l05167"></a><span class="lineno"> 5167</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>() &amp;&amp; !<a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">IsGroundUnit</a>()) {</div>
<div class="line"><a name="l05168"></a><span class="lineno"> 5168</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() &lt; 40)</div>
<div class="line"><a name="l05169"></a><span class="lineno"> 5169</span>&#160;                <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l05170"></a><span class="lineno"> 5170</span>&#160;</div>
<div class="line"><a name="l05171"></a><span class="lineno"> 5171</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() &lt; 200) {</div>
<div class="line"><a name="l05172"></a><span class="lineno"> 5172</span>&#160;                        <span class="keywordtype">double</span> clutter = <a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() / 200;</div>
<div class="line"><a name="l05173"></a><span class="lineno"> 5173</span>&#160;                        <span class="keywordflow">return</span> clutter * e_factor;</div>
<div class="line"><a name="l05174"></a><span class="lineno"> 5174</span>&#160;                }</div>
<div class="line"><a name="l05175"></a><span class="lineno"> 5175</span>&#160;        }</div>
<div class="line"><a name="l05176"></a><span class="lineno"> 5176</span>&#160;</div>
<div class="line"><a name="l05177"></a><span class="lineno"> 5177</span>&#160;        <span class="keywordflow">return</span> e_factor * <a class="code" href="class_ship.html#a5afe99971c8d3ffc4182f80e40d83494">pcs</a>;</div>
<div class="line"><a name="l05178"></a><span class="lineno"> 5178</span>&#160;}</div>
<div class="line"><a name="l05179"></a><span class="lineno"> 5179</span>&#160;</div>
<div class="line"><a name="l05180"></a><span class="lineno"> 5180</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l05181"></a><span class="lineno"><a class="code" href="class_ship.html#a210e5fe1af462271e2c995b8c3ad492d"> 5181</a></span>&#160;<a class="code" href="class_ship.html#a210e5fe1af462271e2c995b8c3ad492d">Ship::ACS</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l05182"></a><span class="lineno"> 5182</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l05183"></a><span class="lineno"> 5183</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a9f283093f40dce0a125e3ea3a794928c">IsAirborne</a>() &amp;&amp; !<a class="code" href="class_ship.html#af136369b9062c6d754912ac8899bf963">IsGroundUnit</a>()) {</div>
<div class="line"><a name="l05184"></a><span class="lineno"> 5184</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() &lt; 40)</div>
<div class="line"><a name="l05185"></a><span class="lineno"> 5185</span>&#160;                <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l05186"></a><span class="lineno"> 5186</span>&#160;</div>
<div class="line"><a name="l05187"></a><span class="lineno"> 5187</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() &lt; 200) {</div>
<div class="line"><a name="l05188"></a><span class="lineno"> 5188</span>&#160;                        <span class="keywordtype">double</span> clutter = <a class="code" href="class_ship.html#a2defa61faaee4c2cebd166ce236da50c">AltitudeAGL</a>() / 200;</div>
<div class="line"><a name="l05189"></a><span class="lineno"> 5189</span>&#160;                        <span class="keywordflow">return</span> clutter * <a class="code" href="class_ship.html#a6e8a59d622df9e3ec98b501a6a226759">acs</a>;</div>
<div class="line"><a name="l05190"></a><span class="lineno"> 5190</span>&#160;                }</div>
<div class="line"><a name="l05191"></a><span class="lineno"> 5191</span>&#160;        }</div>
<div class="line"><a name="l05192"></a><span class="lineno"> 5192</span>&#160;</div>
<div class="line"><a name="l05193"></a><span class="lineno"> 5193</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a6e8a59d622df9e3ec98b501a6a226759">acs</a>;</div>
<div class="line"><a name="l05194"></a><span class="lineno"> 5194</span>&#160;}</div>
<div class="line"><a name="l05195"></a><span class="lineno"> 5195</span>&#160;</div>
<div class="line"><a name="l05196"></a><span class="lineno"> 5196</span>&#160;DWORD</div>
<div class="line"><a name="l05197"></a><span class="lineno"><a class="code" href="class_ship.html#a2301f7d2310b1095ebf1b1d5883758a1"> 5197</a></span>&#160;<a class="code" href="class_ship.html#a2301f7d2310b1095ebf1b1d5883758a1">Ship::MissionClock</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l05198"></a><span class="lineno"> 5198</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l05199"></a><span class="lineno"> 5199</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#abf4babeec6d7433034fc60c9df63cf54">launch_time</a> &gt; 0)</div>
<div class="line"><a name="l05200"></a><span class="lineno"> 5200</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_game.html#ac76ba05e5da1ac16b84367e513e59466">Game::GameTime</a>() + 1 - <a class="code" href="class_ship.html#abf4babeec6d7433034fc60c9df63cf54">launch_time</a>;</div>
<div class="line"><a name="l05201"></a><span class="lineno"> 5201</span>&#160;</div>
<div class="line"><a name="l05202"></a><span class="lineno"> 5202</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l05203"></a><span class="lineno"> 5203</span>&#160;}</div>
<div class="line"><a name="l05204"></a><span class="lineno"> 5204</span>&#160;</div>
<div class="line"><a name="l05205"></a><span class="lineno"> 5205</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05206"></a><span class="lineno"> 5206</span>&#160;</div>
<div class="line"><a name="l05207"></a><span class="lineno"> 5207</span>&#160;<a class="code" href="class_instruction.html">Instruction</a>*</div>
<div class="line"><a name="l05208"></a><span class="lineno"><a class="code" href="class_ship.html#ad4b1ede340f2a31d17a82a266c7f3f5b"> 5208</a></span>&#160;<a class="code" href="class_ship.html#ad4b1ede340f2a31d17a82a266c7f3f5b">Ship::GetRadioOrders</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l05209"></a><span class="lineno"> 5209</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l05210"></a><span class="lineno"> 5210</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a>;</div>
<div class="line"><a name="l05211"></a><span class="lineno"> 5211</span>&#160;}</div>
<div class="line"><a name="l05212"></a><span class="lineno"> 5212</span>&#160;</div>
<div class="line"><a name="l05213"></a><span class="lineno"> 5213</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l05214"></a><span class="lineno"><a class="code" href="class_ship.html#a97e280cc8117a4d900b23b4a79d6a3ea"> 5214</a></span>&#160;<a class="code" href="class_ship.html#a97e280cc8117a4d900b23b4a79d6a3ea">Ship::ClearRadioOrders</a>()</div>
<div class="line"><a name="l05215"></a><span class="lineno"> 5215</span>&#160;{</div>
<div class="line"><a name="l05216"></a><span class="lineno"> 5216</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a>) {</div>
<div class="line"><a name="l05217"></a><span class="lineno"> 5217</span>&#160;                <a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a>-&gt;<a class="code" href="class_instruction.html#ada0518fbd58c13d32450afa321dc812d">SetAction</a>(0);</div>
<div class="line"><a name="l05218"></a><span class="lineno"> 5218</span>&#160;                <a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a>-&gt;<a class="code" href="class_instruction.html#a8677ceb0b7e6e06a0b870a1e98e33a5f">ClearTarget</a>();</div>
<div class="line"><a name="l05219"></a><span class="lineno"> 5219</span>&#160;                <a class="code" href="class_ship.html#a0035d3f97f1350c1010656114b85d574">radio_orders</a>-&gt;<a class="code" href="class_instruction.html#a1ddf1c25861d2319955e5b737f387a56">SetLocation</a>(<a class="code" href="struct_point.html">Point</a>());</div>
<div class="line"><a name="l05220"></a><span class="lineno"> 5220</span>&#160;        }</div>
<div class="line"><a name="l05221"></a><span class="lineno"> 5221</span>&#160;}</div>
<div class="line"><a name="l05222"></a><span class="lineno"> 5222</span>&#160;</div>
<div class="line"><a name="l05223"></a><span class="lineno"> 5223</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l05224"></a><span class="lineno"><a class="code" href="class_ship.html#a33b3ccf7c7ae6b86e2a4cae2172e63ee"> 5224</a></span>&#160;<a class="code" href="class_ship.html#a33b3ccf7c7ae6b86e2a4cae2172e63ee">Ship::HandleRadioMessage</a>(<a class="code" href="class_radio_message.html">RadioMessage</a>* msg)</div>
<div class="line"><a name="l05225"></a><span class="lineno"> 5225</span>&#160;{</div>
<div class="line"><a name="l05226"></a><span class="lineno"> 5226</span>&#160;        <span class="keywordflow">if</span> (!msg) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l05227"></a><span class="lineno"> 5227</span>&#160;</div>
<div class="line"><a name="l05228"></a><span class="lineno"> 5228</span>&#160;        <span class="keyword">static</span> <a class="code" href="class_radio_handler.html">RadioHandler</a> rh;</div>
<div class="line"><a name="l05229"></a><span class="lineno"> 5229</span>&#160;</div>
<div class="line"><a name="l05230"></a><span class="lineno"> 5230</span>&#160;        <span class="keywordflow">if</span> (rh.<a class="code" href="class_radio_handler.html#ad839256c597e6d0a9724587a0dabd488">ProcessMessage</a>(msg, <span class="keyword">this</span>))</div>
<div class="line"><a name="l05231"></a><span class="lineno"> 5231</span>&#160;        rh.<a class="code" href="class_radio_handler.html#a2fa05f2ee2063f5346dab1bc32ca151c">AcknowledgeMessage</a>(msg, <span class="keyword">this</span>);</div>
<div class="line"><a name="l05232"></a><span class="lineno"> 5232</span>&#160;}</div>
<div class="line"><a name="l05233"></a><span class="lineno"> 5233</span>&#160;</div>
<div class="line"><a name="l05234"></a><span class="lineno"> 5234</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05235"></a><span class="lineno"> 5235</span>&#160;</div>
<div class="line"><a name="l05236"></a><span class="lineno"> 5236</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l05237"></a><span class="lineno"><a class="code" href="class_ship.html#abd590adee6a28bdf5b11cb79f12f7511"> 5237</a></span>&#160;<a class="code" href="class_ship.html#abd590adee6a28bdf5b11cb79f12f7511">Ship::Value</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l05238"></a><span class="lineno"> 5238</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l05239"></a><span class="lineno"> 5239</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ship.html#abd590adee6a28bdf5b11cb79f12f7511">Value</a>(<a class="code" href="class_ship.html#a41457370655297c9cc5db74738e5c257">design</a>-&gt;<a class="code" href="class_ship_design.html#a3dadf6f2dc4920b44d2befe2ec816ae4">type</a>);</div>
<div class="line"><a name="l05240"></a><span class="lineno"> 5240</span>&#160;}</div>
<div class="line"><a name="l05241"></a><span class="lineno"> 5241</span>&#160;</div>
<div class="line"><a name="l05242"></a><span class="lineno"> 5242</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05243"></a><span class="lineno"> 5243</span>&#160;</div>
<div class="line"><a name="l05244"></a><span class="lineno"> 5244</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l05245"></a><span class="lineno"><a class="code" href="class_ship.html#a85008eccd3e4a23470e291cfdd007242"> 5245</a></span>&#160;<a class="code" href="class_ship.html#abd590adee6a28bdf5b11cb79f12f7511">Ship::Value</a>(<span class="keywordtype">int</span> type)</div>
<div class="line"><a name="l05246"></a><span class="lineno"> 5246</span>&#160;{</div>
<div class="line"><a name="l05247"></a><span class="lineno"> 5247</span>&#160;        <span class="keywordtype">int</span> value = 0;</div>
<div class="line"><a name="l05248"></a><span class="lineno"> 5248</span>&#160;</div>
<div class="line"><a name="l05249"></a><span class="lineno"> 5249</span>&#160;        <span class="keywordflow">switch</span> (type) {</div>
<div class="line"><a name="l05250"></a><span class="lineno"> 5250</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a5b692d9aa2dc75e41b39bc8cfded199e">DRONE</a>:       value =   10; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05251"></a><span class="lineno"> 5251</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a952cc84cfce051e625eaa89bcf5f091f">FIGHTER</a>:     value =   20; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05252"></a><span class="lineno"> 5252</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824aeb7e1136d713750eb05cd80a8d29f3a0">ATTACK</a>:      value =   40; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05253"></a><span class="lineno"> 5253</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a93cd56b53e74dda52d86a9084091cb94">LCA</a>:         value =   50; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05254"></a><span class="lineno"> 5254</span>&#160;</div>
<div class="line"><a name="l05255"></a><span class="lineno"> 5255</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824abeecc80cf9344d6b23a3709b49fe3adb">COURIER</a>:     value =  100; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05256"></a><span class="lineno"> 5256</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824ad5ca536cac8620f6f4d734d1e835336b">CARGO</a>:       value =  100; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05257"></a><span class="lineno"> 5257</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a9d33e63b6238bdc54fe3a08ecccd8b12">CORVETTE</a>:    value =  100; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05258"></a><span class="lineno"> 5258</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a3f4241f828f8fb02dcc1f81c6284a4bc">FREIGHTER</a>:   value =  250; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05259"></a><span class="lineno"> 5259</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a4d9e7b8dab02d2b919ed24406d8a0da6">FRIGATE</a>:     value =  200; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05260"></a><span class="lineno"> 5260</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824ae666ac174daa6f1fd421d331507eb02a">DESTROYER</a>:   value =  500; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05261"></a><span class="lineno"> 5261</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824af05b382d6ea3ba54ef52f0d81a26ff6e">CRUISER</a>:     value =  800; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05262"></a><span class="lineno"> 5262</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a6a9e2c688e99e1df890e4d95a067e0e3">BATTLESHIP</a>:  value = 1000; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05263"></a><span class="lineno"> 5263</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a14733be3bf6b249a41d9a5a3994ccc09">CARRIER</a>:     value = 1500; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05264"></a><span class="lineno"> 5264</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a8a0796ce917f70f925a5032271ca970e">DREADNAUGHT</a>: value = 1500; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05265"></a><span class="lineno"> 5265</span>&#160;</div>
<div class="line"><a name="l05266"></a><span class="lineno"> 5266</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a4f6f1142524c01a8679946bd85c86a38">STATION</a>:     value = 2500; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05267"></a><span class="lineno"> 5267</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a50a9fd6ea07163add869ecc7886b4f84">FARCASTER</a>:   value = 5000; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05268"></a><span class="lineno"> 5268</span>&#160;</div>
<div class="line"><a name="l05269"></a><span class="lineno"> 5269</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824ae84fff51ce28ee06ea4fed537820f91a">MINE</a>:        value =   20; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05270"></a><span class="lineno"> 5270</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a5b2a763b560edfffa34f8734a009b67d">COMSAT</a>:      value =  200; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05271"></a><span class="lineno"> 5271</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a9c79ac845fa9b9159e0e1c26c81f9228">DEFSAT</a>:      value =  300; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05272"></a><span class="lineno"> 5272</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a422877c295e119b78ca4afc1710dbb4b">SWACS</a>:       value =  500; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05273"></a><span class="lineno"> 5273</span>&#160;</div>
<div class="line"><a name="l05274"></a><span class="lineno"> 5274</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a210badf2cdd5c5baf6d9f4ffa74be1be">BUILDING</a>:    value =  100; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05275"></a><span class="lineno"> 5275</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824aa5b9d8f5e53d0fba250327c2fac8203c">FACTORY</a>:     value =  250; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05276"></a><span class="lineno"> 5276</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a1cb5b06358681078bcb2bbb4e1aa02a5">SAM</a>:         value =  100; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05277"></a><span class="lineno"> 5277</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824ab4e5fed62d02fdb1d5b6a1b1cf5d3f15">EWR</a>:         value =  200; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05278"></a><span class="lineno"> 5278</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824a39baaf1e9293b552e077b7ebc68e8974">C3I</a>:         value =  500; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05279"></a><span class="lineno"> 5279</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="class_ship.html#a71fbded084bb90d16f77d87b7eae5824aa221dfca4cdd9bc4c54914ac158c2760">STARBASE</a>:    value = 2000; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05280"></a><span class="lineno"> 5280</span>&#160;</div>
<div class="line"><a name="l05281"></a><span class="lineno"> 5281</span>&#160;        <span class="keywordflow">default</span>:          value =  100; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l05282"></a><span class="lineno"> 5282</span>&#160;        }</div>
<div class="line"><a name="l05283"></a><span class="lineno"> 5283</span>&#160;</div>
<div class="line"><a name="l05284"></a><span class="lineno"> 5284</span>&#160;        <span class="keywordflow">return</span> value;</div>
<div class="line"><a name="l05285"></a><span class="lineno"> 5285</span>&#160;}</div>
<div class="line"><a name="l05286"></a><span class="lineno"> 5286</span>&#160;</div>
<div class="line"><a name="l05287"></a><span class="lineno"> 5287</span>&#160;<span class="comment">// +----------------------------------------------------------------------+</span></div>
<div class="line"><a name="l05288"></a><span class="lineno"> 5288</span>&#160;</div>
<div class="line"><a name="l05289"></a><span class="lineno"> 5289</span>&#160;<span class="keywordtype">double</span></div>
<div class="line"><a name="l05290"></a><span class="lineno"><a class="code" href="class_ship.html#af329ac19681d6dfe242c64c8c6160d67"> 5290</a></span>&#160;<a class="code" href="class_ship.html#af329ac19681d6dfe242c64c8c6160d67">Ship::AIValue</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l05291"></a><span class="lineno"> 5291</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l05292"></a><span class="lineno"> 5292</span>&#160;        <span class="keywordtype">int</span>    i     = 0;</div>
<div class="line"><a name="l05293"></a><span class="lineno"> 5293</span>&#160;        <span class="keywordtype">double</span> value = 0;</div>
<div class="line"><a name="l05294"></a><span class="lineno"> 5294</span>&#160;</div>
<div class="line"><a name="l05295"></a><span class="lineno"> 5295</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l05296"></a><span class="lineno"> 5296</span>&#160;                <span class="keyword">const</span> <a class="code" href="class_power_source.html">PowerSource</a>* r = <a class="code" href="class_ship.html#a11776ac5980692ae8105cb858b9aaa85">reactors</a>[i];</div>
<div class="line"><a name="l05297"></a><span class="lineno"> 5297</span>&#160;                value += r-&gt;<a class="code" href="class_system.html#a028264242fa503cadf45f72579329911">Value</a>();</div>
<div class="line"><a name="l05298"></a><span class="lineno"> 5298</span>&#160;        }</div>
<div class="line"><a name="l05299"></a><span class="lineno"> 5299</span>&#160;</div>
<div class="line"><a name="l05300"></a><span class="lineno"> 5300</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#ae42d01af212924a4f45b9e4cbd35ba03">drives</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l05301"></a><span class="lineno"> 5301</span>&#160;                <span class="keyword">const</span> <a class="code" href="class_drive.html">Drive</a>* d = <a class="code" href="class_ship.html#ae42d01af212924a4f45b9e4cbd35ba03">drives</a>[i];</div>
<div class="line"><a name="l05302"></a><span class="lineno"> 5302</span>&#160;                value += d-&gt;<a class="code" href="class_system.html#a028264242fa503cadf45f72579329911">Value</a>();</div>
<div class="line"><a name="l05303"></a><span class="lineno"> 5303</span>&#160;        }</div>
<div class="line"><a name="l05304"></a><span class="lineno"> 5304</span>&#160;</div>
<div class="line"><a name="l05305"></a><span class="lineno"> 5305</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); i++) {</div>
<div class="line"><a name="l05306"></a><span class="lineno"> 5306</span>&#160;                <span class="keyword">const</span> <a class="code" href="class_weapon_group.html">WeaponGroup</a>* w = <a class="code" href="class_ship.html#a515048e75b42145929f7261f163d5b05">weapons</a>[i];</div>
<div class="line"><a name="l05307"></a><span class="lineno"> 5307</span>&#160;                value += w-&gt;<a class="code" href="class_weapon_group.html#a0873c178eb5ad0116027d6e0eb07dabf">Value</a>();</div>
<div class="line"><a name="l05308"></a><span class="lineno"> 5308</span>&#160;        }</div>
<div class="line"><a name="l05309"></a><span class="lineno"> 5309</span>&#160;</div>
<div class="line"><a name="l05310"></a><span class="lineno"> 5310</span>&#160;        <span class="keywordflow">return</span> value;</div>
<div class="line"><a name="l05311"></a><span class="lineno"> 5311</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_ea1b58c809a5070716d7c602998a95b0.html">Stars45</a></li><li class="navelem"><a class="el" href="_ship_8cpp.html">Ship.cpp</a></li>
    <li class="footer">Generated on Tue Jun 5 2012 20:47:10 for Starshatter_Open by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1 </li>
  </ul>
</div>
</body>
</html>
